首页 > 解决方案 > 从@INC 中删除条目

问题描述

是否可以从命令行中删除 @INC 中的条目?

我知道export PERL5LIB=/path/file.pm可以用来添加它们,但是可以以类似的方式将它们删除吗?

编辑:
我知道目录通常不会从@INC 中删除,但在我的情况下(也许是你的,如果你在这里寻求帮助)我添加了一个我自己的条目,我需要删除它不仅因为它是一个自定义条目,还因为它指定了一个文件(@INC 的错误使用)而不是一个文件夹。

附加信息:
export命令是从命令行执行的,而不是从脚本执行的。

标签: perlterminal

解决方案


您可以使用no lib命令行中的编译指示perl -M-lib=...

$ 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 ...

更新:根据问题的措辞,我假设您有一个已设置的系统PERL5LIB,并且偶尔询问如何排除条目,仅针对perl“从命令行”)的特定运行。这就是上面所做的:no lib在命令行上使用的效果对于perl.

但是评论中的讨论表明情况恰恰相反:您已经export PERL5LIB=...“从命令行”运行(其效果只是当前会话/shell 的临时效果),并且想要撤消该更改 - 解决方案是运行export PERL5LIB=(设置一个新值会覆盖前一个值,export不像将元素添加到列表中,它只是设置一个新值),或者只是简单地注销并重新登录。

如果您已经设置PERL5LIB.profile.bashrc文件之类的位置,那么您需要编辑这些并注释掉或删除您不想要的条目,然后注销并重新登录。


推荐阅读