我在我的脚本的父目录中有一个模块,我想“使用”它。
如果我做
use '../Foo.pm';
我得到语法错误。
我试图做:
push @INC,'..'; use EPMS;
和..显然不会出现在@INC
我要疯了!这里有什么问题?
解决方法
使用发生在编译时,所以这将工作:
BEGIN {push @INC,'..'} use EPMS;
但更好的解决方案是使用lib,这是一个更好的方式写上面的:
use lib '..'; use EPMS;
但是,如果您从不同的目录运行,建议使用FindBin:
use FindBin; # locate this script use lib "$FindBin::RealBin/.."; # use the parent directory use EPMS;