我怎么能';使用';perl CPAN模块的特定版本?

我怎么能';使用';perl CPAN模块的特定版本?,perl,cpan,perl-module,Perl,Cpan,Perl Module,我有很多在测试和生产中做不同事情的perl代码,我想将我的代码锁定到CPAN模块的特定版本,以防将来对其中一些模块进行一些更改,这可能会破坏我的代码 所以我想使用我使用的所有模块的特定版本。我指的是使用 use XML::Smart 要使用特定模块,请参阅 如果您想要的模块版本高于当前安装的版本,也可以打印错误 你可以说 use XML::Smart v1.6.9; 或 或 用于向后兼容性 use XML::Smart 1.006_009; 参考自: 使用模块版本列表 使用模块版

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

所以我想使用我使用的所有模块的特定版本。我指的是使用

use XML::Smart 

要使用特定模块,请参阅


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

use XML::Smart v1.6.9;


用于向后兼容性

use XML::Smart 1.006_009;  
参考自:

  • 使用模块版本列表
  • 使用模块版本
  • 使用模块列表
  • 使用模块
  • 使用版本
如果模块和列表之间存在版本参数,则 use将使用给定的 作为参数的版本。默认版本方法,继承自 通用类,如果给定版本大于该值,则发出嘎嘎声 变量$Module::VERSION的


你可以做一些低技术的事情:

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

了解特定模块如何报告其版本令人头痛。
version
模块应该进行版本计算,但我觉得它不可靠,因为指定版本的方法太多了。

检查此线程是否有任何有用的信息:您就是Jeffrey Thalhammer的Pinto的确切用例。它在CPAN:To detailure:Pinto管理您的依赖链,允许您在特定版本中“固定”某些模块,同时允许其他模块在新版本发布时升级。您可以回滚更改,以及更多更改。这就像是专门针对Perl模块/发行版的版本控制。Pinto并不意味着其他人会忽略它并通过其他方式对其进行升级。这不会阻止新版本的使用。@ikegami-对此表示抱歉。更新模块的答案
use XML::Smart 1.006_009;  
BEGIN {
    use XML::Simple;
    die "..." unless XML::Simple->VERSION eq '1.23';
    }