File Coverage

blib/lib/List/AllUtils/Null.pm
Criterion Covered Total %
statement 43 43 100.0
branch 23 36 63.8
condition n/a
subroutine 8 8 100.0
pod 5 5 100.0
total 79 92 85.8


line stmt bran cond sub pod time code
1             package List::AllUtils::Null;
2              
3             our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
4             our $DATE = '2021-07-05'; # DATE
5             our $DIST = 'List-AllUtils-Null'; # DIST
6             our $VERSION = '0.003'; # VERSION
7              
8 2     2   71513 use strict;
  2         13  
  2         63  
9 2     2   11 use warnings;
  2         4  
  2         53  
10              
11 2     2   10 use Exporter 'import';
  2         5  
  2         823  
12             our @EXPORT_OK = qw(max maxstr min minstr sum);
13              
14             sub sum(@) {
15 4 50   4 1 16 return undef unless @_;
16 4         8 my $s = 0;
17 4         10 for (@_) {
18 16 100       36 return undef unless defined;
19 14         20 $s += $_;
20             }
21 2         8 $s;
22             }
23              
24             sub min (@) {
25 4 50   4 1 16 return undef unless @_;
26 4         7 my $min = shift;
27 4 50       11 return undef unless defined $min;
28 4         19 for (@_) {
29 12 100       32 return undef unless defined;
30 10 50       24 $_ < $min and $min = $_;
31             }
32 2         6 $min;
33             }
34              
35             sub max (@) {
36 4 50   4 1 198 return undef unless @_;
37 4         11 my $max = shift;
38 4 50       11 return undef unless defined $max;
39 4         14 for (@_) {
40 12 100       32 return undef unless defined;
41 10 50       23 $_ > $max and $max = $_;
42             }
43 2         11 $max;
44             }
45              
46             sub minstr (@) {
47 4 50   4 1 16 return undef unless @_;
48 4         7 my $min = shift;
49 4 50       11 return undef unless defined $min;
50 4         11 for (@_) {
51 12 100       29 return undef unless defined;
52 10 50       21 $_ lt $min and $min = $_;
53             }
54 2         8 $min;
55             }
56              
57             sub maxstr (@) {
58 4 50   4 1 16 return undef unless @_;
59 4         10 my $max = shift;
60 4 50       11 return undef unless defined $max;
61 4         10 for (@_) {
62 12 100       40 return undef unless defined;
63 10 50       28 $_ gt $max and $max = $_;
64             }
65 2         10 $max;
66             }
67              
68             1;
69             # ABSTRACT: List subroutines that treat undef as contagious unknown, like null in SQL
70              
71             __END__