【发布时间】:2014-03-19 20:31:38
【问题描述】:
我有一个需要从干净的环境中调用的 Perl 脚本。我调用脚本的方式如下。
env -i test.pl
调用env -i 后,某些环境变量保持不变,例如PATH。但是,根据ENV 哈希,PATH 变量是空的。
这里是脚本(删节):
#!/usr/bin/perl -w
system('echo "system: $PATH"');
print "perl hash: $ENV{'PATH'}\n";
这是我运行env -i test.pl时的输出:
system: /usr/local/bin:/bin:/usr/bin
Use of uninitialized value in concatenation (.) or string at test.pl line 4.
perl hash:
当我在env -i 下调用脚本时,如何使ENV 哈希正确?
【问题讨论】:
-
根据我的 CentOS 系统的手册页,-i 选项清除环境。
-
-i, --ignore-environment 以空环境开始
-
@RonBergin:是的,这就是我们的意图,从一个干净的环境开始。然而
env -i并没有将环境完全 留空——它使用一些基本条目重新填充PATH,这由系统调用演示。我想知道如何让 PerlENV哈希识别这一点。
标签: perl environment-variables