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