我正在尝试为此错误编写测试。我已经找到了该错误的解决方案;我无法理解的是为什么我的测试在发布之前没有发现错误。
问题归结为Ver: 0
应该打印的命令行打印Ver: 1.00
:
perl -Mversion -e 'printf "Ver: %s\n", ("v1.00" =~ /v(.+)/ ? version->parse($1) : "no");'
但是,如果您在-MTest::More
之前插入-Mversion
,则会打印Ver: 1.00
.
所以我的问题是为什么加载Test::More会改变我的代码的行为?(对于奖励积分,为什么使用"$1"
而不是$1
消除错误?)
我正在使用 Perl 5.14.2、Test::More 0.98 和 0.88 版。