如何知道脚本中使用的环境与程序运行时会看到的环境相同? 据我所知,Perl将环境存储在%ENV中。
我正在尝试使用下面提到的代码来了解变量。
require Data::Dumper;
print STDERR Data::Dumper::Dumper( \%ENV );
在脚本开始执行之前是否有检查所使用的env变量的过程?
答案 0 :(得分:4)
%ENV
的内容将继承到您从perl脚本执行的任何进程。
如果您担心子进程会从您的环境中读取敏感信息,请在运行前给它一个干净的信息:
do {
local %ENV;
$ENV{PATH} = '/usr/bin';
system './another-binary';
};
答案 1 :(得分:4)
不确定您的目标是什么,但是您可以将代码放在BEGIN
块中,以便在加载任何模块之前查看您的环境变量。
BEGIN {
require Data::Dumper;
print STDERR Data::Dumper::Dumper( \%ENV );
}