模块很酷,特别是当它们带有版本控制时。您可以定义最小模块版本以防止您要使用的方法泄漏。但是每一个光明的一面都有一个黑暗的一面,这意味着 Perl 的 TIMTOWTDI。
作为一名 Perl 开发人员将近七年之后,我以多种方式看到并编写了版本声明。有些很容易被认为是坏的,有些则不是。由于没有人能完全了解一门语言,所以我想问你们,在 Perl 中进行以下软件版本控制的优缺点是什么。
如果您发现有一种泄漏,请不要犹豫,评论更多的版本定义方式;)
请尊重:
在 Perl 中声明包版本方法的优缺点是什么?
方法一
package PackageName;
BEGIN {
use version 0.77; our $VERSION = version->new('v0.0_1');
}
方法二
package PackageName;
BEGIN {
our $VERSION = 0.000_01;
}
方法三
package PackageName;
BEGIN {
our $VERSION = 0.0.1;
}
方法四
package PackageName;
use version 0.77; our $VERSION = version->new('v0.0_1');
方法五
package PackageName;
our $VERSION = 0.000_01;
方法6
package PackageName;
our $VERSION = 0.0.1;
最佳答案
正确答案是,这样做:
package My::Thing;
our $VERSION = "0.001";
版本应始终为十进制数,使用三位拆分约定。上述版本将缩短为 v0.1.0,要更改该缩写形式的第 3 步,您可以像这样定义您的版本:
0.001001
,这将是 v0.1.1 的缩写。不要在版本号中添加下划线来标记开发版本。 Perl 工具链从此采用了 -TRIAL 机制,如 Dist::Zilla 4.101800-TRIAL 所示。 .这样做的好处是代码中的版本号不需要更改。通过添加 -TRIAL,仅修改了发布文件名和元文件。
编辑:
在阅读了daxim的答案并思考了一下之后,我不得不同意将版本号放在引号中。它不会以任何方式改变功能,但会降低
0.00101
的可能性。被误认为 v0.1.1
, 实际上是 v0.1.10
更清楚地读作 0.001010
.
关于perl - 在 Perl 中声明包版本方法的优缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17615935/