Cwd
use Cwd; $dir = getcwd(); # Where am I? use Cwd 'chdir'; chdir "/tmp"; # Updates $ENV{PWD}. use Cwd 'realpath'; print realpath("/usr////spool//mqueue/../"); # prints /var/spool
The Cwd
module provides platform-independent functions to determine your process's current working directory. This is better than shelling out to pwd(1) because non-POSIX-conforming systems aren't guaranteed to have such a command, and Perl runs on more than just POSIX platforms. The getcwd
function, which is exported by default, returns the current working directory using whatever mechanism is deemed safest on the current platform. If you import the chdir
function, it overrides the built-in operator with the module's operator, which maintains the $ENV{PWD}
environment variable; commands you might launch later that would care about that variable would then have a consistent view of their world. The realpath
function resolves its pathname argument of any symbolic links and relative-path components to return a full path directory in canonical form, just like realpath(3).