File Coverage

blib/lib/immutable.pm
Criterion Covered Total %
statement 11 22 50.0
branch 0 4 0.0
condition n/a
subroutine 4 11 36.3
pod 7 7 100.0
total 22 44 50.0


line stmt bran cond sub pod time code
1 1     1   106424 use strict;
  1         4  
  1         30  
2 1     1   5 use warnings;
  1         3  
  1         48  
3             package immutable;
4              
5             our $VERSION = '0.0.3';
6              
7 1     1   8 use Exporter 'import';
  1         10  
  1         350  
8              
9             our @EXPORT_OK = qw(
10             iobj
11             imap
12             iseq
13             ilist
14             istr
15             inum
16             ibool
17             );
18              
19             our %EXPORT_TAGS = ( all => [ @EXPORT_OK ] );
20              
21             sub _todo {
22 0     0   0 die "${\ (caller(1))[3]} not yet implemented";
  0         0  
23             }
24              
25             sub iobj {
26 0     0 1 0 my $type = ref($_[0]);
27             return
28 0         0 $type eq 'HASH' ? imap(%{$_[0]}) :
29 0 0       0 $type eq 'ARRAY' ? iseq(@{$_[0]}) :
  0 0       0  
30             die "Invalid arguments for iobj";
31             }
32              
33             sub imap {
34 2     2 1 552 require immutable::map;
35 2         17 return immutable::map->new(@_);
36             }
37              
38 0     0 1   sub iseq { _todo }
39 0     0 1   sub ilist { _todo }
40 0     0 1   sub istr { _todo }
41 0     0 1   sub inum { _todo }
42 0     0 1   sub ibool { _todo }
43              
44             1;