没有保证.
通常,您希望在所有系统上使用相同版本的模块.如果您使用不同的版本,那么您将在不同的服务器上提供不同的错误和功能.
我建议为你要使用的那些创建Debs/RPMS/etc,然后运行一个所有服务器共享的包存储库.
一般来说,没有.还有在最近的Perl发布了很多伟大的新功能(智能匹配运营商的//运营商,为2一例)是不向后兼容.许多作者将决定利用这些功能,而不是让他们的模块与旧版本的Perl兼容.
检查CPAN Tester的模块矩阵,包括有关通过所有分发测试的最大版本的链接,以了解Perl的哪个版本与模块的每个版本兼容.
cpan -i Some::Module确实会尝试安装最新版本的模块Some::Module,但经过一些研究,它也可用于安装旧版本.您需要查找或猜测旧版本的作者,并提供CPAN镜像服务器上的分发路径.例如,
cpan -i J/JF/JFRIEDL/Yahoo-Search-1.9.12.tar.gz
cpan -i A/AS/ASG/List-Gen-0.80.tar.gz
Run Code Online (Sandbox Code Playgroud)
CPAN作者可以从CPAN中删除其旧版本.但即便如此,如果您愿意自己下载,解压缩并构建发行版,则可以在BackPAN上获得该发行版.
并不是绝对的,但总的来说perl对于破坏代码非常温和,没有太多的重大变化,并且对那些确实发生的变化有很长的弃用周期.1999年上传到CPAN的代码中相当大的部分将在perl 5.14中无需修改即可运行.
从perl 5.12开始,perl发布周期变得越来越短,并且弃用期也越来越短,这引起了人们的关注,但与此同时,功能版本控制的概念已经变得流行.我们的想法是代码可以声明它所针对的perl版本use VERSION(例如use 5.16.0),并且任何未声明版本的代码都被假定为大约5.10.当针对较旧的perl版本的代码在较新的perl版本上运行时,会禁用可能导致兼容性问题的新功能(例如,新关键字),并且可能会以兼容性名称重新启用旧的错误.这不是绝对的保证,但它将尽可能地坚持.
有关反向兼容性和弃用的更多信息,请参阅perlpolicy.