Как установить переменную Windows PATH из Perl?
-
21-08-2019 - |
Вопрос
Мне нужно установить переменную среды изнутри Perl.В идеале мне нужно запросить переменную, а затем изменить ее, если она не соответствует требованиям.В частности, я хочу изменить переменную PATH.
Как мне получить и установить эти переменные?
Решение
Если вам нужно изменить переменные среды глобально и навсегда, как если бы вы установили их в панели управления, то вам придется фигня с реестром (обновлять:и теперь есть модули для этого, Win32::Конв и Win32::Env::Путь).Обратите внимание, что изменение переменных в реестре и «широковещательная рассылка» изменений не приведут к изменению переменных среды в некоторых текущих процессах, особенно в perl.exe и cmd.exe.
Если вы просто хотите изменить текущий процесс (и впоследствии породить дочерние процессы), то вам нужна глобальная хеш-переменная %ENV (например,$ENV{ПУТЬ}).Видеть перлдок.
Другие советы
$ENV{ПУТЬ}?
Однако имейте в виду, что переменные среды влияют только на подпроцессы.Вы не можете запустить программу Perl, изменить %ENV, а затем увидеть это изменение в родительском процессе — среда так не работает.
Вы можете сделать это, используя %ENV
хэш
$ENV{PATH} = 'C:\\Windows\;D:\\Programs';