我有很多Perl代码,测试和生产环境中的功能不同,我想锁定我的代码到特定版本的CPAN模块,以防未来某些更改可能会破坏我的代码。
因此,我想使用所有模块的特定版本。所谓“使用”,是指
use XML::Smart
我有很多Perl代码,测试和生产环境中的功能不同,我想锁定我的代码到特定版本的CPAN模块,以防未来某些更改可能会破坏我的代码。
因此,我想使用所有模块的特定版本。所谓“使用”,是指
use XML::Smart
要使用特定模块,请参考only
use only MyModule => 0.30;
use XML::Smart v1.6.9;
或者
use XML::Smart 1.6.9;
或
为了向后兼容性
use XML::Smart 1.006_009;
- use 模块名 版本号 列表
- use 模块名 版本号
- use 模块名 列表
- use 模块名
- use 版本号
如果在模块名和列表之间出现版本号参数,则 use 命令将使用给定版本号作为参数调用类模块 Module 的 VERSION 方法。默认情况下,这个 VERSION 方法继承自 UNIVERSAL 类。如果给定版本号大于变量 $Module::VERSION 的值,则 VERSION 方法会 croak。
BEGIN {
use XML::Simple;
die "..." unless XML::Simple->VERSION eq '1.23';
}
了解特定模块报告其版本的方式可能会令人头疼。虽然version
模块被认为是用于版本匹配,但实际上由于有太多指定版本的方式,因此我认为它不够可靠。