设置$ VERSION的好处是什么?

xen*_*ide 4 perl

很多方法可以将模块设置$VERSION为perl,有些甚至具有优势.我不知道为什么我们这样做?我的意思是META.yml有一个版本......这是用什么的cpan?那么我们为什么要在模块中设置呢?重点是什么?

Cha*_*ens 10

所以你可以说

use Module::Name 4.5.6;
Run Code Online (Sandbox Code Playgroud)

如果您没有安装至少版本4.5.6的Module :: Name,则代码将失败.

当您需要知道安装的版本时,它也很有帮助,您可以说:

perl -MScalar::Util=99999999999999
Run Code Online (Sandbox Code Playgroud)

这大致相当于

#!/usr/bin/perl

use Scalar::Util 99999999999999;
Run Code Online (Sandbox Code Playgroud)

它会失败(因为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.
Run Code Online (Sandbox Code Playgroud)

  • @Ether我想它可以让你免于击球,但它并没有真正做到这一点. (2认同)

too*_*lic 5

来自perlmodlib:模块创建指南:

要与Exporter和MakeMaker模块完全兼容,您应该将模块的版本号存储在名为$ VERSION的非我的包变量中.

为了补充其他人给出的答案,这里是使用MODULE VERSION的链接