我想迁移我的应用程序使用的 perl 库 (SOAP::Lite)。为了让最终用户尽可能顺利地进行迁移,我希望这个库的两个版本(旧版本和新版本)能够并行工作。
目标是让最终用户在需要时自行迁移他们的脚本(如果需要)。所以基本上,对于旧脚本,用户无需更改任何内容,而新脚本将使用新版本编写。
有谁知道如何进行?
使用only
。</p>
正如您在评论中提到的那样,每个脚本都由作为调度程序请求的 Java 应用程序调用,因此您不需要“一次”两个模块。取而代之的是,每次运行脚本只需要一个或另一个。这可以通过在调用旧脚本或新脚本时适当地设置环境来处理。
如果您愿意,可以使用Perlbrew等解决方案来管理两个或更多完全不同的 Perl 安装。如果您发现需要新旧版本之间的其他差异,这将是一个好方法。
但是,如果您只是想换掉这个模块的版本,您需要做的就是在某个地方安装,并在调用脚本时更改模块路径。有多种方法可以做到这一点,但您可以只使用命令行开关:
perl -Idirectory script.pl
这会将目录添加到@INC
搜索模块的位置集。适当地指向旧模块或新模块(如果这样做,请确保模块的任何版本都不在标准模块路径中,否则您使用的版本会产生歧义)。