Dav*_*d B 3 versioning perl moose
我是Moose新手,我想知道是否常见
our $VERSION = "0.001";
$VERSION = eval $VERSION;
Run Code Online (Sandbox Code Playgroud)
也应该在Moose包中使用,或者Moose有一些替代的版本控制方式.无法在Moose文档中找到引用.
raf*_*afl 10
与所有perl软件包一样,$VERSION在其中定义一个通常是个好主意.这允许其他东西正确地依赖于它们的版本以及它们所需的所有功能,通过声明它们Makefile.PL或等效物中的依赖性,或者直接在使用时加载模块use SomeModule 1.23;.
eval你展示的构造是一个kludge.模块的常规版本与开发版本之间存在区别.传统上用a $VERSION下划线表示.这意味着类似于0.001正常,稳定的版本,而类似于0.001_01开发版本.
将eval用于摆脱下划线在运行时,同时还在版本字符串保留它的各种工具,包括暂停,Perl的作者上传服务器,提取物.这是为了避免诸如此类的警告0.001_01 is not numeric in ....
你会在很多代码中找到这个成语.幸运的是,它有一个很好的替代品.您可以在可以使用-TRIAL标志上载到CPAN的发行版tarball中执行此操作,而不是在单个模块的版本号中指示开发状态与非开发状态.
My-Distribution-0.001.tar.gz您可以将其重命名为,而不是将您的发行版上传为My-Distribution-0.001-TRIAL.tar.gz.CPAN工具将选择它并相应地将其视为开发版本.请注意,-TRIAL不是的一部分$VERSION,只有压缩包的名称.因此,eval污泥变得不必要了.
另请注意,有其他方法可以声明包$VERSION.从perl 5.12.0开始,您可以在包声明中声明它:
package My::Package 0.001;
Run Code Online (Sandbox Code Playgroud)
但是,这些都不是以Moose任何方式具体的.
| 归档时间: |
|
| 查看次数: |
295 次 |
| 最近记录: |