File Coverage

blib/lib/lib.pm
Criterion Covered Total %
statement 39 45 86.6
branch 8 18 44.4
condition 2 6 33.3
subroutine 5 5 100.0
pod n/a
total 54 74 72.9


line stmt bran cond sub pod time code
1             package lib;
2              
3             # THIS FILE IS AUTOMATICALLY GENERATED FROM lib_pm.PL.
4             # ANY CHANGES TO THIS FILE WILL BE OVERWRITTEN BY THE NEXT PERL BUILD.
5              
6 1     1   29339 use Config;
  1         2  
  1         32  
7              
8 1     1   4 use strict;
  1         2  
  1         515  
9              
10             my $archname = $Config{archname};
11             my $version = $Config{version};
12             my @inc_version_list = reverse split / /, $Config{inc_version_list};
13              
14              
15             our @ORIG_INC = @INC; # take a handy copy of 'original' value
16             our $VERSION = '0.63';
17              
18             sub import {
19 3     3   125 shift;
20              
21 3         4 my %names;
22 3         7 foreach (reverse @_) {
23 3         1173 my $path = $_; # we'll be modifying it, so break the alias
24 3 50       3763 if ($path eq '') {
25 0         0 require Carp;
26 0         0 Carp::carp("Empty compile time value given to use lib");
27             }
28              
29 3 50 33     104 if ($path !~ /\.par$/i && -e $path && ! -d _) {
      33        
30 0         0 require Carp;
31 0         0 Carp::carp("Parameter to use lib must be directory, not file");
32             }
33 3         9 unshift(@INC, $path);
34             # Add any previous version directories we found at configure time
35 3         6 foreach my $incver (@inc_version_list)
36             {
37 0         0 my $dir = "$path/$incver";
38 0 0       0 unshift(@INC, $dir) if -d $dir;
39             }
40             # Put a corresponding archlib directory in front of $path if it
41             # looks like $path has an archlib directory below it.
42 3         9 my($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir)
43             = _get_dirs($path);
44 3 50       67 unshift(@INC, $arch_dir) if -d $arch_auto_dir;
45 3 50       47 unshift(@INC, $version_dir) if -d $version_dir;
46 3 50       45 unshift(@INC, $version_arch_dir) if -d $version_arch_dir;
47             }
48              
49             # remove trailing duplicates
50 3         8 @INC = grep { ++$names{$_} == 1 } @INC;
  37         96  
51 3         76 return;
52             }
53              
54              
55             sub unimport {
56 1     1   2000 shift;
57              
58 1         3 my %names;
59 1         3 foreach my $path (@_) {
60 1         6 my($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir)
61             = _get_dirs($path);
62 1         3 ++$names{$path};
63 1 50       35 ++$names{$arch_dir} if -d $arch_auto_dir;
64 1 50       15 ++$names{$version_dir} if -d $version_dir;
65 1 50       14 ++$names{$version_arch_dir} if -d $version_arch_dir;
66             }
67              
68             # Remove ALL instances of each named directory.
69 1         3 @INC = grep { !exists $names{$_} } @INC;
  11         26  
70 1         154 return;
71             }
72              
73             sub _get_dirs {
74 4     4   8 my($dir) = @_;
75 4         7 my($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir);
76              
77 4         12 $arch_auto_dir = "$dir/$archname/auto";
78 4         8 $arch_dir = "$dir/$archname";
79 4         7 $version_dir = "$dir/$version";
80 4         11 $version_arch_dir = "$dir/$version/$archname";
81              
82 4         22 return($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir);
83             }
84              
85             1;
86             __END__