1 | %ENV is set as the shell environment in which the Perl program was invoked |
2 | Any UNIX processes invoked by system, fork, backquotes, or open inherits an environment specified by %ENV at invocation of child process |
3 | One can change %ENV in the same way as any hash: |
4 | %ENVIN = %ENV ; $oldpath = $ENV{"PATH"}; # saves input environment |
5 | $ENV{"PATH"} = $oldpath . ":/web/cgi"; # resets PATH to include an extra directory to be used by child process -- later we run |
6 | %ENV=%ENVIN; # Restores original environment |
7 | One can see what has been passed in %ENV by using Perl keys function |
8 | foreach $key (sort keys %ENV ) { |
9 | print "$key = $ENV{$key}\n"; # both $key, $ENV{} are interpolated |
10 | } |