logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

File::Spec::Link - Perl extension for reading and resolving symbolic links

Author

       Robin Barker, <RMBarker@cpan.org>

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".

   Objectmethods
       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

   Otherclassmethods
       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".

Name

       File::Spec::Link - Perl extension for reading and resolving symbolic links

See Also

File::Spec(3) File::Copy::Link(3)

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);

See Also