如何指定在Perl软件包的版本?(How do you specify a package vers

2019-07-31 05:19发布

我是一个有点矛盾的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");

我们有没有退步,或者是有这背后的理由?

Answer 1:

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明确依赖。



文章来源: How do you specify a package version in Perl?