The Environment Variables
When you’re starting another process (with any of the methods discussed here), you may need to set up its environment in one way or another. As we mentioned earlier, you could start the process with a certain working directory, which it inherits from your process. Another common configuration detail is the environment variables.
One of the best-known environment variables is PATH. (If you’ve never heard of it, you
probably haven’t used a system that has environment variables.) On Unix
and similar systems, PATH is a
colon-separated list of directories that may hold programs. When you
type a command like rm fred, the system will look
for the rm command in that list of directories, in
order. Perl (or your system) will use PATH whenever it needs to find the program to
run. If the program in turn runs other programs, those may also be found
along the PATH. (Of course, if you
give a complete name for a command, such as
/bin/echo, there’s no need to search PATH. But that’s generally much less
convenient.)
In Perl, the environment variables are available via the
special %ENV hash; each key in
this hash represents one environment variable. At the start of your
program’s execution, %ENV holds
values it has inherited from its parent process (generally the shell).
Modifying this hash changes the environment variables, which will then
be inherited by new processes and possibly used by Perl as well. For
example, suppose you wished to run the system’s make utility (which ...