2009-02-04 121 views
10

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

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

回答

16

如果您需要更改环境变量全球和永久,因为如果你在控制面板中设置它,那么你必须muck with the registry(更新:现在有模块可以做到这一点,Win32::EnvWin32::Env::Path)。请注意,在注册表中更改变量并“广播”更改不会更改某些当前进程中的环境变量,特别是perl.exe和cmd.exe。

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

7

$ ENV {PATH}?

请记住,环境变量只影响子过程,但是。你不能运行一个Perl程序,改变%ENV,然后在父进程中看到这种改变 - 环境不能这样工作。

+0

LOL,我们成功地在同一秒内提交了相同的答案! :-p – 2009-02-04 18:22:50

+0

伟大的思想家都认为;) – jrockway 2009-02-04 18:28:04

4

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

$ENV{PATH} = 'C:\\Windows\;D:\\Programs';