perl - 从@INC 中删除条目
问题描述
是否可以从命令行中删除 @INC 中的条目?
我知道export PERL5LIB=/path/file.pm
可以用来添加它们,但是可以以类似的方式将它们删除吗?
编辑:
我知道目录通常不会从@INC 中删除,但在我的情况下(也许是你的,如果你在这里寻求帮助)我添加了一个我自己的条目,我需要删除它不仅因为它是一个自定义条目,还因为它指定了一个文件(@INC 的错误使用)而不是一个文件夹。
附加信息:
该export
命令是从命令行执行的,而不是从脚本执行的。
解决方案
您可以使用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
文件之类的位置,那么您需要编辑这些并注释掉或删除您不想要的条目,然后注销并重新登录。
推荐阅读
- sql - 使用存在或不存在查找唯一的名称
- python - python:反转影响运算符的魔术方法的元素
- java - WebObjects 图像缓存
- android - Huawei Android AppUpdateClient - 如何测试
- c++ - C++:检查文件是否正在运行
- c# - ASP.Net API DateTime ISO8601 日期值在生产和 Azure 中被解析为默认日期 (01/01/0001 00:00:00)
- ansible - Ansible 递归授予对文件的只读访问权限
- java - 用 JPQL 替换 Stream API 操作
- python - 使用scrapy和python从tsetmc.com网页抓取网页
- python - 在命令行中激活 django 的虚拟环境与在 Atom 终端中激活它