很多方法可以在perl中设置模块$VERSION
,有些甚至有优势。我不知道为什么我们这样做?我的意思是META.yml有一个版本...... cpan
使用的是什么?那么我们为什么要在模块中设置呢?有什么意义?
答案 0 :(得分:10)
所以你可以说
use Module::Name 4.5.6;
如果您没有至少安装了版本4.5.6的Module :: Name,则代码将失败。
当您需要知道安装的版本时,它也很有帮助,您可以说:
perl -MScalar::Util=99999999999999
这大致相当于
#!/usr/bin/perl
use Scalar::Util 99999999999999;
它会失败(因为Scalar::Util
无法接近版本99999999999999)并告诉您版本号。就我而言,它说:
Scalar::Util version v.Inf required--this is only version 1.22 at
/Users/cowens/apps/perlbrew/perls/perl-5.12.1/lib/5.12.1/Exporter/Heavy.pm
line 120.
BEGIN failed--compilation aborted.
答案 1 :(得分:5)
来自perlmodlib: Guidelines for Module Creation:
完全兼容 Exporter和MakeMaker模块你 应存储模块的版本 非my包变量中的数字 叫$ VERSION。
为了补充其他人给出的答案,这里是use MODULE VERSION
的链接答案 2 :(得分:3)
因此,如果您的模块被广泛使用并积极维护,人们可以在其代码中轻松引用该版本,以根据其使用的版本激活/停用其代码。只是一个猜测。
答案 3 :(得分:3)
$VERSION
。例如,模块的用户可以编写
use YourModule 2.3;
确保可以使用最低版本的YourModule。这对于API更改,错误修复等很重要。
答案 4 :(得分:3)
这可能有点偏离主题,但是从perl 5.12开始,你可以简单地通过
设置模块VERSIONpackage Foo::Bar 1.23;
版本号必须遵循“严格”格式,请参阅版本:: Internals中的$version::STRICT。