我正在写一些perl脚本,我想要包含模块。当我在script.pl所在的目录中时,一切都很好。但是,当我尝试从其他目录启动我的脚本时,它说它无法找到我的模块。我的包含如下:
use Functions qw(translateWord sendHelp);
并且带有模块的文件名为Functions ..我试过这样的事情:
use lib '..';
但它也失败了......我也试过了:
use Cwd 'abs_path';
BEGIN {
my $dir = abs_path($0);
use lib "$dir";
}
但又失败了..我也试过了:
use Cwd 'abs_path';
my $dir = abs_path($0);
use lib $dir;
但仍然失败..我是Perl的新手。
提前致谢!
答案 0 :(得分:3)
实现这一目标的规范方法是使用'use lib'。使用..
的库并不理想,因为它在调用脚本时与当前工作目录相关。
实现此目的的方法是使用FindBin
。
E.g。
use FindBin;
use lib $FindBin::Bin."/../";
从脚本的“基本位置”遍历目录级别。
答案 1 :(得分:0)
试试这个:
BEGIN{
unshift @INC, '/FULL/PATH/TO/DIR/OF/YOUR/MODULE';
}