Мне нужно установить переменную окружения из Perl. В идеале мне нужно запросить переменную, а затем изменить ее, если это не то, что требуется. В частности, это переменная PATH, которую я хочу изменить.
Как мне получить и установить эти переменные?
Если вам нужно глобально и постоянно изменять переменные окружения, как если бы вы установили их на панели управления, тогда вам нужно гадить с реестром (обновление: и теперь есть модули для этого, Win32 :: Env и Win32 :: Env :: Path ). Обратите внимание, что изменение переменных в реестре и «широковещательное» изменение не изменит переменные среды в некоторых текущих процессах, особенно perl.exe и cmd.exe.
Если вы просто хотите изменить текущий процесс (и впоследствии порожденные дочерние процессы), то вам нужна глобальная хеш-переменная% ENV (например, $ ENV {PATH}). См. perldoc perlvar .
$ ENV {PATH}?
Имейте в виду, что переменные окружения влияют только на подпроцессы. Вы не можете запустить Perl-программу, изменить% ENV, а затем увидеть это изменение в родительском процессе - среда не работает таким образом.
Вы можете сделать это, используя %ENV хэш
%ENV
$ENV{PATH} = 'C:\\Windows\;D:\\Programs';