我有这个班轮:
perl -Mversion -e 'our $VERSION = v1.02; print $VERSION'
输出是(它不可见,有两个字符:1,2):
为什么模块版本不可打印?我希望看到v1.02
答案 0 :(得分:6)
我找到了这个DOC
print v9786; # prints SMILEY, "\x{263a}"
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