File Coverage

blib/lib/List/MapBruteBatch.pm
Criterion Covered Total %
statement 18 20 90.0
branch 6 8 75.0
condition n/a
subroutine 5 5 100.0
pod 0 1 0.0
total 29 34 85.2


line stmt bran cond sub pod time code
1             package List::MapBruteBatch;
2 1     1   13804 BEGIN { $List::MapBruteBatch::VERSION = '0.02'; }
3 1     1   5 use strict;
  1         0  
  1         15  
4 1     1   3 use warnings;
  1         1  
  1         20  
5 1     1   3 use Exporter 'import';
  1         1  
  1         537  
6              
7             our @EXPORT_OK = 'map_brute_batch';
8              
9             sub map_brute_batch {
10 35     35 0 126 my ($cb, $items, $cb_success, $cb_failure) = @_;
11              
12 35 100       34 if ($cb->($items)) {
    100          
13 16 50       96 return $cb_success->($items) if $cb_success;
14 0         0 return;
15             } elsif (@$items > 1) {
16 17         119 my $i = @$items;
17 17         37 my @a = @$items[0 .. ($i / 2)-1];
18 17         37 my @b = @$items[$i / 2 .. ($i - 1)];
19              
20             return (
21 17         25 map_brute_batch($cb, \@a, $cb_success, $cb_failure),
22             map_brute_batch($cb, \@b, $cb_success, $cb_failure),
23             );
24             } else {
25 2 50       13 return $cb_failure->($items) if $cb_failure;
26 0           return;
27             }
28              
29             }
30              
31             1;
32              
33             __END__