%ENV is set as the shell environment which the Perl program was invoked
|
Any UNIX processes invoked by system, fork, backquotes, open inherits an environment specified by %ENV at invocation of child process.
|
One can change %ENV in the same way as any associative array
|
%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
|
}
|