現在の環境変数は %ENV
ハッシュを参照することで取得できます。
while (my ($key, $val) = each %ENV) {
print "$key = $val\n";
}
%ENV
ハッシュの内容を変更することで、環境変数の内容を変更することができます。
$ENV{'PATH'} = "/home/kate/bin:$ENV{'PATH'}";
delete $ENV{'FLAGS'}; # 環境変数の削除
環境変数は子プロセスに引き継がれるので、次のように system
関数で別のプログラムを呼び出す前に、環境変数をあらかじめ設定しておくことができます。
$ENV{'CXX'} = 'g++';
my $result = system 'make'; # make ユーティリティを呼び出す
子プロセスで環境変数を変更しても、親プロセスには影響しません。 これは、つまり、Perl スクリプトの中で環境変数を設定しても、呼び出し元のシェルプロセスには影響しないということです。