如何包含位于不同目录中的 Perl 模块?它必须是包含它的模块的相对路径。
我已经尝试过
push ( @INC,"directory_path/more_path");
还有
push ( @INC,"directory_path\\more_path");
最佳答案
编辑:首先提出正确的解决方案,最初来自 this question 。它是唯一一个相对于模块目录进行搜索的:
use FindBin; # locate this script
use lib "$FindBin::Bin/.."; # use the parent directory
use yourlib;
还有许多其他方法可以搜索相对于当前目录的库。您可以使用 -I 参数调用 perl,传递另一个模块的目录:
perl -I.. yourscript.pl
您可以在 Perl 脚本顶部附近添加一行:
use lib '..';
您可以在运行脚本之前修改环境变量 PERL5LIB:
export PERL5LIB=$PERL5LIB:..
push(@INC) 策略也可以工作,但必须将其包装在 BEGIN{} 中,以确保推送在模块搜索之前运行:
BEGIN {push @INC, '..'}
use yourlib;
关于perl - 如何包含位于不同目录中的 Perl 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/841785/