use Cwd; $dir = cwd(); # get current working directory safest way $dir = getcwd(); # like getcwd(3) or getwd(3) $dir = fastcwd(); # faster and more dangerous use Cwd 'chdir'; # override chdir; keep PWD up to date chdir "/tmp"; print $ENV{PWD}; # prints "/tmp"
cwd()
gets the current working directory using the most natural and safest form for the current architecture. For most systems it is identical to
`pwd`
(but without the trailing line terminator).
getcwd()
does the same thing by re-implementing
getcwd
(3) or
getwd
(3) in Perl.
fastcwd()
looks the same as
getcwd()
, but runs faster. It's also more dangerous because you might
chdir
out of a directory that you can't
chdir
back into.
It is recommended that one of these functions be used in all code to ensure portability because the pwd program probably only exists on UNIX systems.
If you consistently override your
chdir
built-in function in all packages of your program, then your
PWD
environment variable will automatically be kept up to date. Otherwise, you shouldn't rely on it. (Which means you probably shouldn't rely on it.)