如何包含在不同目录中的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;