Reverting change #27953, as it appears that File::Find has
[p5sagit/p5-mst-13.2.git] / lib / File / Spec.pm
index 7cb7192..9aac374 100644 (file)
@@ -3,7 +3,7 @@ package File::Spec;
 use strict;
 use vars qw(@ISA $VERSION);
 
-$VERSION = '3.05';
+$VERSION = '3.17';
 $VERSION = eval $VERSION;
 
 my %module = (MacOS   => 'Mac',
@@ -13,7 +13,7 @@ my %module = (MacOS   => 'Mac',
              epoc    => 'Epoc',
              NetWare => 'Win32', # Yes, File::Spec::Win32 works on NetWare.
              symbian => 'Win32', # Yes, File::Spec::Win32 works on symbian.
-              dos     => 'OS2',   # Yes, File::Spec::OS2 works on DJGPP.
+             dos     => 'OS2',   # Yes, File::Spec::OS2 works on DJGPP.
              cygwin  => 'Cygwin');
 
 
@@ -89,6 +89,13 @@ path.
 
     $cpath = File::Spec->canonpath( $path ) ;
 
+Note that this does *not* collapse F<x/../y> sections into F<y>.  This
+is by design.  If F</foo> on your system is a symlink to F</bar/baz>,
+then F</foo/../quux> is actually F</bar/quux>, not F</quux> as a naive
+F<../>-removal would give you.  If you want to do this kind of
+processing, you probably want C<Cwd>'s C<realpath()> function to
+actually traverse the filesystem cleaning up paths like this.
+
 =item catdir
 
 Concatenate two or more directory names to form a complete path ending
@@ -223,10 +230,10 @@ from the base path to the destination path:
     $rel_path = File::Spec->abs2rel( $path ) ;
     $rel_path = File::Spec->abs2rel( $path, $base ) ;
 
-If C<$base> is not present or '', then L<cwd()|Cwd> is used. If C<$base> is
+If C<$base> is not present or '', then L<Cwd::cwd()|Cwd> is used. If C<$base> is
 relative, then it is converted to absolute form using
 L</rel2abs()>. This means that it is taken to be relative to
-L<cwd()|Cwd>.
+L<Cwd::cwd()|Cwd>.
 
 On systems with the concept of volume, if C<$path> and C<$base> appear to be
 on two different volumes, we will not attempt to resolve the two
@@ -239,7 +246,7 @@ C<$base> filename as well. Otherwise all path components are assumed to be
 directories.
 
 If C<$path> is relative, it is converted to absolute form using L</rel2abs()>.
-This means that it is taken to be relative to L<cwd()|Cwd>.
+This means that it is taken to be relative to L<Cwd::cwd()|Cwd>.
 
 No checks against the filesystem are made.  On VMS, there is
 interaction with the working environment, as logicals and
@@ -254,9 +261,9 @@ Converts a relative path to an absolute path.
     $abs_path = File::Spec->rel2abs( $path ) ;
     $abs_path = File::Spec->rel2abs( $path, $base ) ;
 
-If C<$base> is not present or '', then L<cwd()|Cwd> is used. If C<$base> is relative,
+If C<$base> is not present or '', then L<Cwd::cwd()|Cwd> is used. If C<$base> is relative,
 then it is converted to absolute form using L</rel2abs()>. This means that it
-is taken to be relative to L<cwd()|Cwd>.
+is taken to be relative to L<Cwd::cwd()|Cwd>.
 
 On systems with the concept of volume, if C<$path> and C<$base> appear to be
 on two different volumes, we will not attempt to resolve the two