如何在@INC中永久设置某些路径

如何在@INC中永久设置某些路径

我想在 @INC 中设置一个路径,因为脚本无法找到 perl 模块。要求是,我不能直接在脚本中包含模块路径。所以,我想直接在@INC中添加模块路径。我有办法做到这一点吗?

我也尝试编辑 ~/.bash_profile , ~/.bashrc 。但它没有在@INC中添加路径。

答案1

有多种方法:

  • 调用为perl -Ipath script.pl
  • 调用为PERL5OPT=path script.pl
  • 全局设置export PERL5OPT=pathin.profilePERL5OPT=pathin .pam_environment(也影响其他脚本)

答案2

如果您已进行修改~/.bashrc但尚未将其添加到您的环境中,那么您可能会将其添加到您的PATH.执行此操作的最佳方法是使用PERL5LIB环境变量。

如果您想在每个 shell 会话开始时执行此操作,无论发生什么情况,请将以下行添加到~/.bashrc(假设 shell 是 bash)并获取脚本源或启动新的 shell 会话。

export PERL5LIB=/path/to/module

如果您只想在该脚本中执行此操作,请在 shebang 之后添加以下行:

use lib '/path/to/module';

如果您只想尽快执行此操作,请使用以下命令运行脚本perl -I

perl -I /path/to/module script.pl

所有这些方法都会将包含模块的目录添加到@INC

答案3

我找到了它简单的灵魂。

推(@INC,/路径)或取消移动(@INC,'/路径)

第二种方法:在文件本身中使用 lib“/path”。

答案4

编写调用.pl的第一行,例如:

use lib ".";

相关内容