如何动态更改Perl模块路径?

前端之家收集整理的这篇文章主要介绍了如何动态更改Perl模块路径?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个不同版本的Perl模块.目前,关键脚本使用由环境变量指定的模块版本,系统依赖于不同用户运行的不同任务.用户的环境将决定使用哪个版本的Perl模块.

现在我想将其更改为在Perl脚本中指定的版本,即根据所传递的选项.不幸的是,这样的代码

if ($new){ use lib "newdir"; }
else{ use lib "olddir"; }
use module;

不行Perl只需将newdir,然后将olddir追加到@INC,然后运行该脚本.

如何动态指定要使用的模块?

解决方法

您需要使用BEGIN {}块,以便您的if-else代码将在编译时运行:
BEGIN {
    if ($new) { unshift @INC,"newdir"; }
    else {      unshift @INC,"olddir"; }
}
use module;

您还可以设置PERL5LIB环境变量,以便您不必在脚本中执行此类配置.

猜你在找的Perl相关文章