Вопрос

Мне нужно установить переменную среды изнутри Perl.В идеале мне нужно запросить переменную, а затем изменить ее, если она не соответствует требованиям.В частности, я хочу изменить переменную PATH.

Как мне получить и установить эти переменные?

Это было полезно?

Решение

Если вам нужно изменить переменные среды глобально и навсегда, как если бы вы установили их в панели управления, то вам придется фигня с реестром (обновлять:и теперь есть модули для этого, Win32::Конв и Win32::Env::Путь).Обратите внимание, что изменение переменных в реестре и «широковещательная рассылка» изменений не приведут к изменению переменных среды в некоторых текущих процессах, особенно в perl.exe и cmd.exe.

Если вы просто хотите изменить текущий процесс (и впоследствии породить дочерние процессы), то вам нужна глобальная хеш-переменная %ENV (например,$ENV{ПУТЬ}).Видеть перлдок.

Другие советы

$ENV{ПУТЬ}?

Однако имейте в виду, что переменные среды влияют только на подпроцессы.Вы не можете запустить программу Perl, изменить %ENV, а затем увидеть это изменение в родительском процессе — среда так не работает.

Вы можете сделать это, используя %ENV хэш

$ENV{PATH} = 'C:\\Windows\;D:\\Programs';
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top