是否可以从命令行中删除@INC中的条目?
我知道export PERL5LIB=/path/file.pm可以用来添加它们,但它们是否可以以类似的方式删除?
编辑:
我知道目录通常不会从@INC中删除,但在我的情况下(也许是你的,如果你在这里寻求帮助)我添加了一个我需要删除的条目,不仅因为它是一个自定义条目,但也因为它指定了一个文件(错误使用@INC)而不是文件夹.
附加信息:
该export命令是从命令行执行的,而不是从脚本执行的.
您可以使用no lib命令行中的pragma 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 ...
Run Code Online (Sandbox Code Playgroud)
更新:根据问题的措辞,我假设你有一个你已设置的系统PERL5LIB,并且询问如何偶尔排除条目,仅针对特定的运行perl("从命令行").这就是上面所做的:no lib在命令行上使用的效果只是暂时的运行perl.
但是评论中的讨论显示情况正好相反:你已经export PERL5LIB=..."从命令行"运行(其效果只是暂时的当前会话/ shell),并且想要撤消该更改 - 解决方案是运行export PERL5LIB=(设置一个新值会覆盖前一个值,export不像是向列表添加元素,只是设置一个新值),或者只是注销并重新登录.
如果你已经设置PERL5LIB了像.profile或.bashrc文件这样的地方,那么你需要编辑它们并注释掉或删除你不想要的条目,然后再注销并重新登录.