File Coverage

blib/lib/Loop/Util.pm
Criterion Covered Total %
statement 19 19 100.0
branch 6 6 100.0
condition n/a
subroutine 4 4 100.0
pod n/a
total 29 29 100.0


line stmt bran cond sub pod time code
1 11     11   2631988 use 5.014000;
  11         45  
2 11     11   74 use strict;
  11         54  
  11         329  
3 11     11   55 use warnings;
  11         20  
  11         4264  
4              
5             package Loop::Util;
6              
7             our $AUTHORITY = 'cpan:TOBYINK';
8             our $VERSION = '0.001000';
9              
10             # These are dynamically scoped by the rewritten loop keywords.
11             our ( $LOOPKIND, $LENGTH, $ITERATION );
12              
13             my @ALL_KEYWORDS = qw( loop iffirst iflast ifodd ifeven __IX__ );
14             my %VALID = map { $_ => 1 } @ALL_KEYWORDS;
15              
16             sub import {
17 13     13   13748 my ( $class, @keywords ) = @_;
18              
19 13 100       62 if ( !@keywords ) {
20 9         41 @keywords = @ALL_KEYWORDS;
21             }
22              
23 13         41 for my $keyword ( @keywords ) {
24             die "Unknown Loop::Util keyword '$keyword'"
25 61 100       165 if not exists $VALID{ $keyword };
26             }
27              
28 12         29 my %enabled = map { $_ => 1 } @keywords;
  60         132  
29              
30 12         29 for my $keyword ( @ALL_KEYWORDS ) {
31 72 100       143 if ( exists $enabled{ $keyword } ) {
32 60         25438 $^H{ "Loop::Util/$keyword" } = 1;
33             }
34             else {
35 12         477 delete $^H{ "Loop::Util/$keyword" };
36             }
37             }
38             }
39              
40             require XSLoader;
41             XSLoader::load( __PACKAGE__, $VERSION );
42              
43             __PACKAGE__
44             __END__