При импорте среды из подкоманды я хочу добавить все переменные среды, экспортированные из bash-скрипта, в хеш. Когда program
запускается, он устанавливает некоторые переменные и экспортирует их. Я хотел бы сохранить эти переменные в скрипте Perl на потом. Однако я не хочу использовать функции bash, определенные в подкоманде. В настоящее время у меня есть блок, как:
foreach (`program; env`)
{
next if /^\(\)/;
my ($a, $b) = split("=", $_);
if( /^(\w+)=(.*)$/ ) {
$hash{$1} = $2;
}
}
Есть ли лучший способ сделать это? Я не уверен, что соответствие initial () безопасно. Бонусные баллы за обработку строк в переменных окружения, на которые я сейчас закрываю глаза.