This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Upgrade to PathTools 3.05
[perl5.git] / lib / blib.pm
index 9797f2f..df20add 100644 (file)
@@ -34,12 +34,13 @@ Pollutes global name space for development only task.
 
 Nick Ing-Simmons nik@tiuk.ti.com
 
-=cut 
+=cut
 
 use Cwd;
+use File::Spec;
 
 use vars qw($VERSION $Verbose);
-$VERSION = '1.01';
+$VERSION = '1.02';
 $Verbose = 0;
 
 sub import
@@ -52,20 +53,32 @@ sub import
    $dir = shift;
    $dir =~ s/blib\z//;
    $dir =~ s,/+\z,,;
-   $dir = '.' unless ($dir);
+   $dir = File::Spec->curdir unless ($dir);
    die "$dir is not a directory\n" unless (-d $dir);
   }
- my $i   = 5;
+ my $i = 5;
+ my($blib, $blib_lib, $blib_arch);
  while ($i--)
   {
-   my $blib = "${dir}/blib";
-   if (-d $blib && -d "$blib/arch" && -d "$blib/lib")
+   $blib = File::Spec->catdir($dir, "blib");
+   $blib_lib = File::Spec->catdir($blib, "lib");
+
+   if ($^O eq 'MacOS')
+    {
+     $blib_arch = File::Spec->catdir($blib_lib, $MacPerl::Architecture);
+    }
+   else
+    {
+     $blib_arch = File::Spec->catdir($blib, "arch");
+    }
+
+   if (-d $blib && -d $blib_arch && -d $blib_lib)
     {
-     unshift(@INC,"$blib/arch","$blib/lib");
+     unshift(@INC,$blib_arch,$blib_lib);
      warn "Using $blib\n" if $Verbose;
      return;
     }
-   $dir .= "/..";
+   $dir = File::Spec->catdir($dir, File::Spec->updir);
   }
  die "Cannot find blib even in $dir\n";
 }