2009-02-04 125 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';