File Coverage

blib/lib/Perl/WhichPhase.pm
Criterion Covered Total %
statement 16 16 100.0
branch 2 2 100.0
condition 9 9 100.0
subroutine 8 8 100.0
pod 6 6 100.0
total 41 41 100.0


line stmt bran cond sub pod time code
1             package Perl::WhichPhase;
2              
3 2     2   1165 use strict;
  2         4  
  2         78  
4 2     2   10 use vars qw: $VERSION @ISA @EXPORT_OK %EXPORT_TAGS :;
  2         3  
  2         745  
5              
6             $VERSION = "0.01";
7              
8             @ISA = qw: Exporter :;
9              
10             @EXPORT_OK = qw"
11             block
12             in_BEGIN
13             in_INIT
14             in_END
15             in_CHECK
16             in_CODE
17             ";
18              
19             %EXPORT_TAGS = (
20             in => [ qw: in_BEGIN in_INIT in_END in_CHECK in_CODE : ],
21             );
22              
23             sub block () {
24 10     10 1 17 my($i, $b, $subroutine) = 1;
25 10         64 while($subroutine = (caller($i++))[3]) {
26 13         42 $b = (split(/::/, $subroutine))[-1];
27 13 100 100     143 return $b if($b eq 'BEGIN' || $b eq 'END' || $b eq 'INIT' || $b eq 'CHECK');
      100        
      100        
28             }
29 2         9 return;
30             }
31              
32 1     1 1 213 sub in_BEGIN () { return block eq 'BEGIN'; }
33 1     1 1 9 sub in_INIT () { return block eq 'INIT'; }
34 1     1 1 3 sub in_END () { return block eq 'END'; }
35 1     1 1 696 sub in_CHECK () { return block eq 'CHECK'; }
36 1     1 1 13 sub in_CODE () { return !defined block; }
37              
38             1;
39              
40             __END__