print v9786; # prints SMILEY, "\x{263a}"
print v102.111.111; # prints "foo"
print 102.111.111; # same
v1.02
是一个不是内部字符串的v-string
。当我们想要打印它时,我们需要额外的步骤。例如,像上面建议的那样使用模块version
。
更新printf "%vd", $VERSION; # prints "1.2"
更新
而且这个应该被理解为:
有两种输入v-strings的方法:一个是带有两个或多个小数点的裸数字,另一个是带有一个或多个小数点和一个前导'v'字符(同样是裸的)的裸数字。例如:
$vs1 = 1.2.3; # encoded as \1\2\3
$vs2 = v1.2; # encoded as \1\2
v1.02
两侧加上双引号即可。 - Dadaversion
预处理指令的目的吗? - simbabquev1.02
是具有值1
的字符,后跟具有值2
的字符(它们不可打印;但例如,如果您执行say v65.66
,它将打印AB
)。现在我不知道version
模块的情况,但从我在 CPAN 上看到的内容来看,使用它的标准方式不是像这样使用吗:our $VERSION = version->declare("v1.02")
?@simbabque - Dadadeclare
部分的。没错。 - simbabquev1.02
(和v1.2
)产生相同的两个字符字符串,即"\x01\x02"
。 - ikegami