File::Spec::Link(3) Perl extension for reading and resolving symbolic links

SYNOPSIS


use File::Spec::Link;
my $file = File::Spec::Link->linked($link);
my $file = File::Spec::Link->resolve($link);
my $dirname = File::Spec::Link->chopfile($file);
my $newname = File::Spec::Link->relative_to_file($path, $link);

my $realname = File::Spec::Link->full_resolve($file);
my $realname = File::Spec::Link->resolve_path($file);
my $realname = File::Spec::Link->resolve_all($file);

DESCRIPTION

"File::Spec::Link" is an extension to "File::Spec", adding methods for resolving symbolic links; it was created to implement "File::Copy::Link".
"linked($link)"
Returns the filename linked to by $link: by "readlink"ing $link, and resolving that path relative to the directory of $link.
"resolve($link)"
Returns the non-link ultimately linked to by $link, by repeatedly calling "linked". Returns "undef" if the link can not be resolved.
"chopfile($file)"
Returns the directory of $file, by splitting the path of $file and returning (the volumne and) directory parts.
"relative_to_file($path, $file)"
Returns the path of $path relative to the directory of file $file. If $path is absolute, just returns $path.
"resolve_all($file)"
Returns the filename of $file with all links in the path resolved, wihout using "Cwd".
"full_resolve($file)"
Returns the filename of $file with all links in the path resolved.

This sub tries to use "Cwd::abs_path" via "->resolve_path".

"resolve_path($file)"
Returns the filename of $file with all links in the path resolved.

This sub uses "Cwd::abs_path" and is independent of the rest of "File::Spec::Link".

Object methods

"new([$path])"
create new path object: stores path as a list
"path"
returns path as a string, using catpath
"canonical"
returns canonical path, using canonpath
"vol"
returns volume element of path, see File::Spec->splitpath
"dir"
returns directory element of path, as a string, see File::Spec->splitpath
"dirs"
return list of directory components in path, see File::Spec->splitdir
"pop"
remove last component of the path
"push($file)"
add a file component to the path, ignoring empty strings
"add($file)"
add a component to the path: treating "updir" as "pop", and ignoring "curdir" and empty strings
"split($path)"
populate a path object, using splitpath
"chop"
remove and return a file component from path, an empty string returns means this was root dir.
"relative($path)"
replace the path object with the supplied path, where the new path is relative to the path object
"follow"
follow the link, where the path object is a link
"resolved"
resolve the path object, by repeatedly following links
"resolvedir"
resolve the links at all component levels within the path object

Other class methods

"canonpath($path)"
Wrapper round File::Spec::canonpath, fatal if empty input
"catdir(@dirs)"
Wrapper round File::Spec::catdir, returns "curdir" from empty list
"splitlast($path)"
Get component from $path (using "chop") and returns remaining path and compenent, as strings. [Not used]

EXPORT

None - all subs are methods for "File::Spec::Link".

AUTHOR

Robin Barker, <[email protected]>

COPYRIGHT AND LICENSE

Copyright 2003, 2005, 2006, 2007, 2011, 2014 by Robin Barker

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.