如何"使用“perl CPAN模块的特定版本?

tjrkku2a  于 2023-11-22  发布在  Perl
关注(0)|答案(3)|浏览(300)

我有很多Perl代码,在测试和生产中做不同的事情,我想把我的代码锁定到特定版本的CPAN模块,以防将来对其中一些模块进行更改,这可能会破坏我的代码。
所以我想使用我使用的所有模块的特定版本。

use XML::Smart

字符串

ezykj2lf

ezykj2lf1#

要使用特定模块,请参阅only

use only MyModule => 0.30;

字符串
如果您想要的模块版本高于当前安装的版本,也可以打印错误

use XML::Smart v1.6.9;


use XML::Smart 1.6.9;



为了向后兼容

use XML::Smart 1.006_009;


关于perldoc

  • 使用模块版本列表
  • 使用模块版本
  • 使用模块列表
  • 使用模块
  • 使用版本

如果在Module和LIST之间存在VERSION参数,则use将调用类Module中的VERSION方法,并将给定的版本作为参数。从UNIVERSAL类继承的默认VERSION方法,如果给定的版本大于变量$Module::VERSION的值,则会崩溃。

p5fdfcr1

p5fdfcr12#

你可以做低科技的事情:

BEGIN {
    use XML::Simple;
    die "..." unless XML::Simple->VERSION eq '1.23';
    }

字符串
知道一个特定的模块如何报告它的版本是一件令人头痛的事情。version模块应该做版本数学,但我发现它不可靠,因为有太多的方法来指定版本。

mlmc2os5

mlmc2os53#

如果你在项目根目录中使用cpanfile来声明对CPAN模块的依赖(你应该这样做),你可以在那里确定版本:

requires 'XML::Simple' => '== 1.23';

字符串

相关问题