File Coverage

blib/lib/Sub/Iterator.pm
Criterion Covered Total %
statement 18 23 78.2
branch 2 4 50.0
condition n/a
subroutine 6 8 75.0
pod 2 2 100.0
total 28 37 75.6


line stmt bran cond sub pod time code
1             package Sub::Iterator;
2              
3             our $DATE = '2015-01-17'; # DATE
4             our $VERSION = '0.01'; # VERSION
5              
6 1     1   15222 use 5.010001;
  1         3  
  1         31  
7 1     1   4 use strict;
  1         1  
  1         32  
8 1     1   3 use warnings;
  1         2  
  1         32  
9              
10 1     1   3 use Exporter;
  1         1  
  1         153  
11             our @ISA = qw(Exporter);
12             our @EXPORT_OK = qw(
13             gen_array_iterator
14             gen_fh_iterator
15             );
16              
17             sub gen_array_iterator {
18 2     2 1 671 my $array = shift;
19 2         4 my $i = 0;
20             return sub {
21 5 100   5   685 if ($i >= @$array) { undef } else { $array->[$i++] }
  1         6  
  4         17  
22 2         10 };
23             }
24              
25             sub gen_fh_iterator {
26 0     0 1   my $fh = shift;
27             return sub {
28 0 0   0     if (eof($fh)) { undef } else { ~~<$fh> }
  0            
  0            
29 0           };
30             }
31              
32             1;
33             # ABSTRACT: Generate iterator coderefs
34              
35             __END__