如何使用命令行中的路径覆盖@INC内容。如果我使用“-I”选项,它只会添加到默认路径。
答案 0 :(得分:4)
我不知道您为什么要从@INC
中删除。 @INC
中早期路径中的模块会覆盖以后路径中的模块,因此通常只需添加到@INC
的前面
export PERL5LIB=path2:path2
script ...
-or-
PERL5LIB=path2:path2 script ...
-or-
perl -Mlib=path1,path2 script ...
-or-
# Doesn't add arch subdirs automatically!
perl -Ipath1 -Ipath2 script ...
但是可以做你想做的事。
perl -e'
@INC = grep { ... } @INC;
do(shift(@ARGV))
or die "Error attempting to execute script: $@\n";
' script arg arg
如果要将...
中的路径保留在$_
中,请将@INC
替换为返回true的表达式。
答案 1 :(得分:0)
$ export PERL5LIB=/custom/dir:/another/custom/dir;
$ perl script.pl