http://www.perlmonks.org?node_id=977420

ZWcarp has asked for the wisdom of the Perl Monks concerning the following question:

In perl, when you use the readlink function on a symbolic link it doesn't seem to work them same as when you use the unix command readlink -m. How do you get the absolute path of a symbolic link in perl ? Is there a way without using additional modules?
  • Comment on How to get the absolute path of a symbolic link

Replies are listed 'Best First'.
Re: How to get the absolute path of a symbolic link
by morgon (Priest) on Jun 20, 2012 at 17:35 UTC
    Use Cwd::abs_path to get an absolute path.

    Cwd is a core-module so you don't need to install anything extra.

    use Cwd qw(abs_path); my $absolute_path = abs_path (readlink $link);

      Just like the previous answer stated, Cwd qw(abs_path) would do the job just as realpath from the same module would do.
      However, one really do not need the readlink function anymore because "..Symbolic links and relative-path components ("." and "..") are resolved to return the canonical pathname.." -- perldoc Cwd.

      use Cwd qw(abs_path realpath); #.... my $absolute_path = abs_path($link); # or ... my $absolute_path = realpath($link);