File Coverage

blib/lib/PerlX/ArraySkip.pm
Criterion Covered Total %
statement 15 17 88.2
branch 1 2 50.0
condition n/a
subroutine 5 5 100.0
pod 1 1 100.0
total 22 25 88.0


line stmt bran cond sub pod time code
1             package PerlX::ArraySkip;
2              
3 1     1   19659 use 5.006;
  1         3  
  1         43  
4             #use strict;
5             #use warnings;
6              
7             BEGIN {
8 1     1   2 $PerlX::ArraySkip::AUTHORITY = 'cpan:TOBYINK';
9 1         179 $PerlX::ArraySkip::VERSION = '0.002';
10             }
11              
12             sub import
13             {
14 1     1   12 my $class = shift;
15 1         5 my $caller = caller;
16 1 50       6 @_ = qw(arrayskip) unless @_;
17            
18 1         7 my $code = __PACKAGE__->can("arrayskip");
19            
20             #no strict 'refs';
21 1         4 foreach my $func (@_)
22             {
23 1         3 *{"$caller\::$func"} = $code;
  1         25  
24             }
25             }
26              
27             unless (($ENV{PERLX_ARRAYSKIP_IMPLEMENTATION}||'') =~ /pp/i)
28             {
29 1     1   10950 eval q{ use PerlX::ArraySkip::XS 0.002 qw(arrayskip) };
  0         0  
  0         0  
30             }
31              
32 6     6 1 62 __PACKAGE__->can('arrayskip') ? eval <<'END_XS' : eval <<'END_PP';
  6         33  
33              
34             sub IMPLEMENTATION () { "XS" }
35              
36             END_XS
37              
38             sub IMPLEMENTATION () { "PP" }
39              
40             sub arrayskip (@) { shift; @_ }
41              
42             END_PP
43              
44             1;
45              
46             __END__