Как проверить переменные среды Perl, используемые в скрипте, перед выполнением? - PullRequest
2 голосов
/ 13 декабря 2011

Как узнать, что среда, используемая в скрипте, такая же, что программа увидит при запуске? Насколько мне известно, Perl сохраняет окружение в% ENV.

Я пытаюсь использовать код, упомянутый ниже, чтобы узнать переменные.

    require Data::Dumper;
    print STDERR Data::Dumper::Dumper( \%ENV );

Есть ли какие-либо процедуры проверки переменных env, используемых до начала выполнения скрипта?

Ответы [ 2 ]

4 голосов
/ 13 декабря 2011

Не уверен, к чему вы клоните, но вы можете поместить свой код в блок BEGIN, чтобы увидеть, какие у вас переменные среды, до загрузки любых используемых вами модулей.

BEGIN {
    require Data::Dumper;
    print STDERR Data::Dumper::Dumper( \%ENV );
}
4 голосов
/ 13 декабря 2011

Содержимое %ENV наследуется любому процессу, который вы выполняете из сценария perl.

Если вы обеспокоены тем, что дочерний процесс считывает конфиденциальную информацию из вашей среды, перед запуском дайте ей чистую информацию:

do {
    local %ENV;
    $ENV{PATH} = '/usr/bin';
    system './another-binary';
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...