File Coverage

blib/lib/scriptname.pm
Criterion Covered Total %
statement 44 47 93.6
branch 9 14 64.2
condition 3 9 33.3
subroutine 14 15 93.3
pod 3 3 100.0
total 73 88 82.9


line stmt bran cond sub pod time code
1             package scriptname;
2             # ABSTRACT: Locate original perl script
3              
4 3     3   181102 use strict;
  3         21  
  3         77  
5 3     3   13 use warnings;
  3         6  
  3         72  
6 3     3   64 use 5.000;
  3         8  
7              
8             my($myname, $mybase, $mydir);
9              
10             BEGIN {
11 3     3   9 our $VERSION = '0.94';
12 3         5 our $AUTHORITY = 'MASSA';
13              
14 3     3   20 use Carp;
  3         4  
  3         180  
15 3     3   15 use Cwd qw(realpath cwd);
  3         5  
  3         178  
16 3     3   16 use File::Basename qw(basename dirname);
  3         6  
  3         655  
17              
18 3 50 33     24 if( $0 eq '-' || $0 eq '-e' ) {
19 0         0 $mydir = cwd
20             } else {
21 3         28 my($zero) = ($0 =~ /^(.*)$/);
22 3         148 $myname = $0 = realpath $zero;
23 3         411 $mybase = basename $0, qw(.t .pm .pl .perl .exe .com .bat);
24 3         93 $mydir = dirname $0;
25 3 50       58 croak 'chdir() too early' unless -f $0
26             }
27              
28 3     3   1158 use lib;
  3         1743  
  3         16  
29 3     3   169 use Exporter;
  3         4  
  3         197  
30 3         8 our @EXPORT_OK = qw(myname mybase mydir);
31 3         779 our %EXPORT_TAGS = (all => [@EXPORT_OK]);
32             }
33              
34 0     0 1 0 sub myname() { $myname } ## no critic
35 1     1 1 436 sub mybase() { $mybase } ## no critic
36 2     2 1 340 sub mydir() { $mydir } ## no critic
37 4 100   4   182 sub _mylib { map realpath("$mydir/$_"), (@_ ? @_ : qw(./lib)) }
38              
39             sub import {
40 3     3   27 my $package = shift;
41 3 100       17 return unless @_;
42 2         4 my $first_tag = shift;
43 2 50 33     13 return lib->import(_mylib @_) if defined $first_tag and $first_tag eq 'lib';
44 0         0 Exporter::import($package, $first_tag, @_)
45             }
46              
47             sub unimport {
48 2     2   1014 my $package = shift;
49 2 50       7 return unless @_;
50 2         4 my $first_tag = shift;
51 2 50 33     13 lib->unimport(_mylib @_) if defined $first_tag and $first_tag eq 'lib'
52             }
53              
54             # Magic true value required at end of module
55             1;
56              
57              
58             __END__