NAME
File::Spec::Link - 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
: byreadlink
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 callinglinked
. Returnsundef
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 usingCwd
. 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 ofFile::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
aspop
, and ignoringcurdir
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
(usingchop
) and returns remaining path and compenent, as strings. [Not used]
EXPORT
None - all subs are methods for File::Spec::Link
.
SEE ALSO
File::Spec(3) File::Copy::Link(3)
AUTHOR
Robin Barker, <Robin.Barker@npl.co.uk>
COPYRIGHT AND LICENSE
Copyright 2003, 2005, 2006 by Robin Barker
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.