File Coverage

blib/lib/Namespace/Pollute.pm
Criterion Covered Total %
statement 19 21 90.4
branch 6 12 50.0
condition n/a
subroutine 2 2 100.0
pod n/a
total 27 35 77.1


line stmt bran cond sub pod time code
1             package Namespace::Pollute;
2             {
3             $Namespace::Pollute::VERSION = '0.002';
4             }
5             # ABSTRACT: Loads and imports the default exported symbols of a list of modules
6              
7 1     1   25188 use Exporter;
  1         3  
  1         301  
8             @ISA = qw(Exporter);
9              
10             sub import {
11              
12 1     1   12 shift; #-- The first one is our own class name
13              
14 1 50       6 if ( $_[0] eq '-verbose' ) {
15 1         1 $VERBOSE = 1;
16 1         2 shift;
17             }
18              
19 1         3 foreach my $module (@_) {
20 2         120 eval "require $module";
21              
22 2 100       7 if ( eval { $module->isa('Exporter') } ) {
  2 50       34  
23 1 50       41 print "ISA Exporter: $module\n" if $VERBOSE;
24              
25 1         3 @EXPORT = @{"${module}::EXPORT"};
  1         12  
26              
27 1         65 $module->import(@EXPORT);
28              
29 1         2 foreach my $symbol (@EXPORT) {
30 3 50       23 print "\tExporting: $module::$symbol\n" if $VERBOSE;
31 3         1504 Namespace::Pollute->export_to_level( 1,, ($symbol) );
32             }
33              
34             } elsif (
35             eval {
36 1         13 $module->can('import');
37             }
38             )
39             {
40 0 0         print "Calling $module->import\n" if $VERBOSE;
41              
42             #-- Things that have an import sub:
43 0           $module->import;
44             }
45             }
46              
47             }
48              
49             1;
50              
51             __END__