是否可以从命令行中删除@INC中的条目?
我知道export PERL5LIB=/path/file.pm
可以用来添加它们,但它们是否可以以类似的方式删除?
修改
我知道目录通常不会从@INC中删除,但在我的情况下(也许是你的,如果你在这里寻求帮助)我添加了一个我需要删除的条目,不仅因为它是一个自定义条目,而且因为它指定了一个文件(错误使用@INC)而不是文件夹。
附加信息:
export
命令是从命令行执行的,而不是从脚本执行的。
答案 0 :(得分:7)
您可以使用$ PERL5LIB=/tmp/foo perl -le 'print for @INC'
/tmp/foo
... normal @INC entries ...
$ PERL5LIB=/tmp/foo perl -M-lib=/tmp/foo -le 'print for @INC'
... normal @INC entries ...
命令行中的no lib
pragma:
PERL5LIB
更新:根据问题的措辞,我假设您有一个系统,您已设置perl
,并询问如何偶尔排除条目,仅对于no lib
的特定运行(“来自命令行”)。这就是上面所做的:perl
在命令行中使用的效果仅对export PERL5LIB=...
的运行是暂时的。
但是评论中的讨论显示它恰恰相反:你从命令行运行了export PERL5LIB=
“(其效果只是当前会话/ shell的临时性),并且想要撤消更改 - 解决方案要么运行export
(设置新值会覆盖前一个值,PERL5LIB
不像添加元素到列表,它只是设置一个新值),或者只是退出并重新登录。
如果您在.profile
或.bashrc
文件的位置设置了(Column B)
Alex
4
Alex
3
Bart
2
Alex
3
Bart
2
example
Alex= 10
Bart= 4
,那么您需要编辑这些文件并注释掉或删除您不想要的条目,然后退出并重新登录。
答案 1 :(得分:3)
您可以在BEGIN块中更改它。示例:
$ perl -MData::Dumper -e 'BEGIN { @INC = qw// }; print Dumper(\@INC);'
$VAR1 = [];