gpt4 book ai didi

perl - 我应该如何控制我的 Perl Moose 对象的版本?

转载 作者:行者123 更新时间:2023-12-03 23:13:06 25 4
gpt4 key购买 nike

我是 Moose 新手,我想知道是否常见

our $VERSION = "0.001";
$VERSION = eval $VERSION;

也应该在 Moose 包中使用,或者 Moose 有一些替代的版本控制方式。在 Moose 文档中找不到引用。

最佳答案

与所有 perl 软件包一样,使用 $VERSION 通常是个好主意。在他们定义。这允许其他事物正确地依赖它们的版本以及它们需要的所有特性,或者通过在它们的 Makefile.PL 中声明依赖关系来实现。或等效的,或直接在使用 use SomeModule 1.23; 加载模块时.

eval你展示的构造是一个杂物。模块的常规版本和开发版本之间是有区别的。传统上,这已由 $VERSION 表示。里面有一个下划线。这意味着像 0.001将是一个正常的、稳定的版本,而像 0.001_01将是一个开发版本。

eval用于在运行时删除该下划线,同时仍将其保留在各种工具(包括 PAUSE、Perl Authors Upload SErver)提取的版本字符串中。这是为了避免警告,例如 0.001_01 is not numeric in ... .

您会在大量代码中找到该惯用语。幸运的是,有一个很好的替代方案。除了在单个模块的版本号中指示开发与非开发状态之外,您还可以在发布 tarball 中执行此操作,您可以使用 -TRIAL 上传到 CPAN标志。

而不是将您的发行版上传为 My-Distribution-0.001.tar.gz ,您可以将其重命名为 My-Distribution-0.001-TRIAL.tar.gz . CPAN 工具将选择它并将其视为相应的开发版本。请注意 -TRIAL不属于 $VERSION , 只有 tarball 名称。因此 eval kludge 变得不必要了。

另请注意,还有其他方法可以声明包的 $VERSION .从 perl 5.12.0 开始,您可以在包声明中正确声明它:

package My::Package 0.001;

但是,这些都不是 Moose 所特有的。以任何方式。

关于perl - 我应该如何控制我的 Perl Moose 对象的版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3851281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com