10

我需要从 Perl 中设置环境变量。理想情况下,我需要查询一个变量,然后在不需要时更改它。具体来说,它是我要更改的 PATH 变量。

如何获取和设置这些变量?

4

3 回答 3

15

如果您需要全局和永久更改环境变量,就像您在控制面板中设置它一样,那么您必须使用注册表(更新:现在有模块可以做到这一点,Win32::EnvWin32::Env ::路径)。请注意,更改注册表中的变量并“广播”更改不会更改某些当前进程中的环境变量,尤其是 perl.exe 和 cmd.exe。

如果您只想更改当前进程(以及随后生成的子进程),那么全局 %ENV 散列变量就是您想要的(例如 $ENV{PATH})。请参阅perldoc perlvar

于 2009-02-04T18:36:03.367 回答
7

$ENV{路径}?

但是请记住,环境变量只影响子进程。您不能运行 Perl 程序,更改 %ENV,然后在父进程中看到该更改——环境不是那样工作的。

于 2009-02-04T18:22:12.850 回答
4

您可以使用%ENV哈希来做到这一点

$ENV{PATH} = 'C:\\Windows\;D:\\Programs';
于 2009-02-04T18:22:13.223 回答