Silence warnings in Pod::Man
[p5sagit/p5-mst-13.2.git] / lib / blib.pm
index aaecd45..45ccd9b 100644 (file)
@@ -16,7 +16,7 @@ Looks for MakeMaker-like I<'blib'> directory structure starting in
 I<dir> (or current directory) and working back up to five levels of '..'.
 
 Intended for use on command line with B<-M> option as a way of testing
-arbitary scripts against an uninstalled version of a package.
+arbitrary scripts against an uninstalled version of a package.
 
 However it is possible to : 
 
@@ -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.00';
+$VERSION = '1.03';
 $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";
 }