我想在 @INC 中设置一个路径,因为脚本无法找到 perl 模块。要求是,我不能直接在脚本中包含模块路径。所以,我想直接在@INC中添加模块路径。我有办法做到这一点吗?
我也尝试编辑 ~/.bash_profile , ~/.bashrc 。但它没有在@INC中添加路径。
答案1
有多种方法:
- 调用为
perl -Ipath script.pl
- 调用为
PERL5OPT=path script.pl
- 全局设置
export PERL5OPT=path
in.profile
或PERL5OPT=path
in.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 ".";