File Coverage

blib/lib/PerlX/ArraySkip.pm
Criterion Covered Total %
statement 12 14 85.7
branch 1 2 50.0
condition n/a
subroutine 4 4 100.0
pod 1 1 100.0
total 18 21 85.7


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