为啥版本不能打印?
Posted
技术标签:
【中文标题】为啥版本不能打印?【英文标题】:Why version is not printable?为什么版本不能打印? 【发布时间】:2017-11-24 00:44:19 【问题描述】:我有这个班轮:
perl -Mversion -e 'our $VERSION = v1.02; print $VERSION'
输出是(不可见,有两个字符:1、2):
为什么模块版本不可打印?我期待看到v1.02
【问题讨论】:
我得到了输出。这是两个不可打印的字符。我想我是 00 和 11 在v1.02
周围加双引号就可以了
@Dada 这不是达到了version
pragma 的目的吗?
v1.02
是值为1
的字符,后跟值为2
的字符(它们不可打印;但例如,如果您执行say v65.66
,它将打印AB
)。现在我不知道 version
模块,但从我在 CPAN 上看到的情况来看,使用它的标准方法不是像 our $VERSION = version->declare("v1.02")
吗? @simbabque
@Dada 我也想说declare
部分。是的。
【参考方案1】:
我找到了这个DOC
print v9786; # prints SMILEY, "\x263a"
print v102.111.111; # prints "foo"
print 102.111.111; # same
回答我的问题:
尽管v1.02
是v-string
,但内部不是字符串。当我们想要打印它时,我们应该做额外的步骤。例如,按照上面的建议使用模块version
。
UPD 我找到了下一个解决方案 (DOC):
printf "%vd", $VERSION; # prints "1.2"
UPD
this 应该被阅读:
有两种输入 v-strings 的方法:带有两个或多个小数点的裸数字,或带有一个或多个小数点和前导“v”字符(也是裸数字)的裸数字。例如:
$vs1 = 1.2.3; # encoded as \1\2\3
$vs2 = v1.2; # encoded as \1\2
【讨论】:
以上是关于为啥版本不能打印?的主要内容,如果未能解决你的问题,请参考以下文章
bartender(条码打印软件) 9.4,我还装seagull license server了装后还是为啥不能打印?
为啥我不能在 Swift 中使用从一个 UIViewController 传递到另一个(在控制台中打印数据)的数据设置标签?