我是一个有点矛盾的5.10.0预文件和最近之间的意见混淆版本模块。 Perl的最佳做法使得它很清楚,版本字符串(“V1.0.3”)是不好的,都应该指定一个版本如下:
use version; our $VERSION = qv('1.0.3');
但版本模块说,我们又回到了使用的版本字符串:
use version 0.77; our $VERSION = qv("v1.2.3");
我们有没有退步,或者是有这背后的理由?
我是一个有点矛盾的5.10.0预文件和最近之间的意见混淆版本模块。 Perl的最佳做法使得它很清楚,版本字符串(“V1.0.3”)是不好的,都应该指定一个版本如下:
use version; our $VERSION = qv('1.0.3');
但版本模块说,我们又回到了使用的版本字符串:
use version 0.77; our $VERSION = qv("v1.2.3");
我们有没有退步,或者是有这背后的理由?
从Perl的最佳实践你的报价是不完全正确。 具体而言,形式的裸 vstrings
our $VERSION = v1.0.3;
都望而却步。 在version.pm的最新版本,该建议是使用真正的字符串:
use version 0.77; our $VERSION = qv("v1.2.3"); # shorthand
此功能已被添加到提高可读性,而具体描述避免裸字符串的陷阱在这里 。
由于文档页面链接到您说,您可以使用的版本,无需使用内置的逻辑在Perl 5.10预挂起“V”:
如果你有一个使用十进制$ VERSION(浮点)的模块,并且不打算永远改变这种状况,这个模块不适合你。 没有什么,version.pm获得您通过简单的$ VERSION分配。
所以回答你的问题是:使用新的“V1.0.3”语法,如果你要编写一个使用version.pm新代码。 坚持一个普通的数字,如果这是你的旧代码是如何写的,或者如果你不想在module.pm明确依赖。