微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Perl中声明包版本方法的优缺点是什么?

模块很酷,特别是当它们进行版本控制时.您可以定义最小模块版本,以防止想要使用的方法泄漏.但是每一个轻微的一面都有一个黑暗的一面,这意味着Perl的TIMTOWTDI.

经过近七年的Perl开发人员,我以许多方式看到并写了版本声明.有些很容易被指出是坏的,有的不是.由于没有人能完全了解一种语言,我想问你们Perl中以下软件版本的优缺点是什么.

如果发现漏洞,请不要犹豫,评论更多的版本定义方式;)

请尊重

>奇怪的需要/使用模块可能会导致故障检测模块的版本(编译vs运行时)
>暂停/ CPAN解析(和其他常见服务)
>最终用户的可读性
>开发人员的可维护性

在Perl中声明包版本方法的优缺点是什么?

方法1

package PackageName;
BEGIN {
  use version 0.77; our $VERSION = version->new('v0.0_1');
}

方法2

package PackageName;
BEGIN {
  our $VERSION = 0.000_01;
}

方法3

package PackageName;
BEGIN {
  our $VERSION = 0.0.1;
}

方法4

package PackageName;
use version 0.77; our $VERSION = version->new('v0.0_1');

方法5

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的答案并思考一下之后,我必须同意将版本号加入引号.它不会以任何方式改变功能,但是当实际上是v0.1.10并且更清楚地读为0.001010时,会减少0.00101被误认为v0.1.1的几率.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐