source: trunk/third/perl/lib/blib.pm @ 14545

Revision 14545, 1.3 KB checked in by ghudson, 24 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r14544, which included commits to RCS files with non-trunk default branches.
Line 
1package blib;
2
3=head1 NAME
4
5blib - Use MakeMaker's uninstalled version of a package
6
7=head1 SYNOPSIS
8
9 perl -Mblib script [args...]
10
11 perl -Mblib=dir script [args...]
12
13=head1 DESCRIPTION
14
15Looks for MakeMaker-like I<'blib'> directory structure starting in
16I<dir> (or current directory) and working back up to five levels of '..'.
17
18Intended for use on command line with B<-M> option as a way of testing
19arbitary scripts against an uninstalled version of a package.
20
21However it is possible to :
22
23 use blib;
24 or
25 use blib '..';
26
27etc. if you really must.
28
29=head1 BUGS
30
31Pollutes global name space for development only task.
32
33=head1 AUTHOR
34
35Nick Ing-Simmons nik@tiuk.ti.com
36
37=cut
38
39use Cwd;
40
41use vars qw($VERSION);
42$VERSION = '1.00';
43
44sub import
45{
46 my $package = shift;
47 my $dir = getcwd;
48 if ($^O eq 'VMS') { ($dir = VMS::Filespec::unixify($dir)) =~ s-/\z--; }
49 if (@_)
50  {
51   $dir = shift;
52   $dir =~ s/blib\z//;
53   $dir =~ s,/+\z,,;
54   $dir = '.' unless ($dir);
55   die "$dir is not a directory\n" unless (-d $dir);
56  }
57 my $i   = 5;
58 while ($i--)
59  {
60   my $blib = "${dir}/blib";
61   if (-d $blib && -d "$blib/arch" && -d "$blib/lib")
62    {
63     unshift(@INC,"$blib/arch","$blib/lib");
64     warn "Using $blib\n";
65     return;
66    }
67   $dir .= "/..";
68  }
69 die "Cannot find blib even in $dir\n";
70}
71
721;
Note: See TracBrowser for help on using the repository browser.