File Coverage

blib/lib/Data/Unixish/sum.pm
Criterion Covered Total %
statement 24 24 100.0
branch 2 2 100.0
condition n/a
subroutine 7 7 100.0
pod 1 1 100.0
total 34 34 100.0


line stmt bran cond sub pod time code
1             package Data::Unixish::sum;
2              
3 7     7   3618 use 5.010;
  7         23  
4 7     7   36 use strict;
  7         8  
  7         155  
5 7     7   2952 use syntax 'each_on_array'; # to support perl < 5.12
  7         166874  
  7         29  
6 7     7   21613 use warnings;
  7         14  
  7         172  
7             #use Log::Any '$log';
8 7     7   36 use Scalar::Util 'looks_like_number';
  7         15  
  7         317  
9              
10 7     7   2960 use Data::Unixish::Util qw(%common_args);
  7         19  
  7         1700  
11              
12             our $VERSION = '1.571'; # VERSION
13              
14             our %SPEC;
15              
16             $SPEC{sum} = {
17             v => 1.1,
18             summary => 'Sum numbers',
19             args => {
20             %common_args,
21             },
22             tags => [qw/datatype:num group/],
23             };
24             sub sum {
25 7     7 1 31 my %args = @_;
26 7         23 my ($in, $out) = ($args{in}, $args{out});
27              
28 7         15 my $sum = 0;
29 7         47 while (my ($index, $item) = each @$in) {
30 35 100       315 $sum += $item if looks_like_number($item);
31             }
32              
33 7         20 push @$out, $sum;
34 7         39 [200, "OK"];
35             }
36              
37             1;
38             # ABSTRACT: Sum numbers
39              
40             __END__