File Coverage

blib/lib/immutable/0.pm
Criterion Covered Total %
statement 20 27 74.0
branch 3 4 75.0
condition n/a
subroutine 7 13 53.8
pod 0 8 0.0
total 30 52 57.6


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