Branch Coverage

blib/lib/Data/Walker.pm
Criterion Covered Total %
branch 129 270 47.7


line true false branch
530 0 0 if (exists $Data::Walker::Config{$_}) { }
564 1 0 if (defined $_[0] and ref $_[0] eq $class) { }
575 0 1 unless (defined $ref and ref $ref)
600 0 267 unless ref $ref
608 0 267 if $realtype eq 'SCALAR' and ref $$ref
610 180 87 wantarray ? :
624 139 15 unless defined $recurse
628 0 154 if (not defined $ref) { }
101 53 elsif (ref $ref) { }
638 17 84 if defined $refpackage and $refpackage ne ''
639 7 94 if $$self{'showids'}
641 15 86 if ($reftype eq 'REF') { }
647 0 15 if (exists $$recurse{$ref}) { }
650 0 0 $hops > 1 ? :
664 30 56 if ($reftype eq 'HASH') { }
31 25 elsif ($reftype eq 'ARRAY') { }
0 25 elsif ($reftype eq 'SCALAR' and not defined $$ref) { }
12 13 elsif ($reftype eq 'SCALAR' and defined $$ref) { }
696 0 53 if ($$self{'truncatescalars'} > 0 and length $ref > $$self{'truncatescalars'} - 2)
703 14 39 unless ($value =~ /^(?:0|-?[1-9]\d{0,8})$/)
711 126 28 wantarray ? :
728 31 2 unless defined $recurse
730 31 2 ref $ref ? :
732 5 28 unless ($what_is_it =~ /(ARRAY|HASH|REF)/)
734 0 5 if $$self{'warning'}
740 23 5 if reftype($$self{'refpath'}[-1]) eq 'HASH'
741 0 28 if reftype($$self{'refpath'}[-1]) eq 'ARRAY'
759 4 24 if ($$self{'skipdoublerefs'} and ref $$self{'cursor'} eq 'REF') { }
764 0 4 if $$self{'skipwarning'} and $$self{'warning'}
766 2 2 if (exists $$recurse{${$$self{'cursor'};}}) { }
781 0 0 $hops > 1 ? :
0 2 if $$self{'warning'}
800 0 2 if (ref $$self{'cursor'} eq 'REF' and scalar @{$$self{'refpath'};} > 1)
802 0 0 if $$self{'skipwarning'} and $$self{'warning'}
831 1 12 if scalar @{$$self{'refpath'};} == 1
839 3 7 if ($$self{'skipdoublerefs'} and $name eq $$self{'refname'} and $#{$$self{'refpath'};} > 0)
841 0 3 if $$self{'skipwarning'} and $$self{'warning'}
872 89 0 if (defined $_[0] and ref $_[0] eq 'Data::Walker') { }
0 0 elsif (defined $Data::Walker::WALKER and ref $Data::Walker::WALKER eq 'Data::Walker') { }
879 0 0 if $$self{'autoprint'} eq ''
890 80 9 if (exists $Data::Walker::Commands{$func}) { }
892 0 80 unless (exists $$self{'cursor'} and ref $$self{'cursor'})
901 0 80 if ($$self{'autoprint'})
904 0 0 if $func =~ /(cd|chdir)/
915 0 9 if $msg
929 0 15 unless defined $key
931 0 15 unless defined $value
935 0 15 if $value eq q[''] or $value eq '""'
937 0 15 if ($value =~ /^".*"$/) { }
0 15 elsif ($value =~ /^'.*'$/) { }
949 0 15 if (/(truncatescalars|lscol?width|maxdepth)/i)
951 0 0 unless ($value =~ /\d+/ and $value >= 0)
958 0 15 if (/indent/i)
959 0 0 unless ($value =~ /(1|2|3)/)
966 0 15 if (/rootname/i)
968 0 0 if defined $$self{'namepath'}
969 0 0 if defined $$self{'prev_namepath'}
973 0 15 if (/^arrow$/i)
980 0 15 unless (exists $Data::Walker::Config{$key})
988 15 0 if exists $$self{$key}
1014 0 26 if ($dirspec =~ /^\s*-\s*$/) { }
1047 14 12 if ($dirspec =~ m[^/])
1077 0 31 if ($dir eq '.') { }
5 26 elsif ($_ eq '..') { }
4 22 elsif ($reftype eq 'REF') { }
22 0 elsif ($reftype eq 'HASH') { }
0 0 elsif ($reftype eq 'ARRAY') { }
1087 1 3 unless ($_ eq $$self{'refname'})
1089 0 1 if $$self{'warning'}
1104 0 22 if (not exists $$self{'cursor'}{$dir}) { }
1106 0 0 if $$self{'warning'}
1121 0 0 if (not $dir =~ /^\d+$/ && scalar @{$$self{'cursor'};} > $dir) { }
1123 0 0 if $$self{'warning'}
1143 0 0 if $$self{'warning'}
1157 3 27 unless (defined $$self{'cursor'})
1189 20 7 if ($option =~ /l/) { }
1194 14 6 if ($option =~ /a/)
1198 7 7 if (scalar @{$$self{'namepath'};} > 1) { }
1213 0 20 if ($reftype eq 'REF') { }
10 10 elsif ($reftype eq 'HASH') { }
10 0 elsif ($reftype eq 'ARRAY') { }
1246 5 2 $option =~ /a/ ? :
1248 0 7 if ($reftype eq 'REF') { }
3 4 elsif ($reftype eq 'HASH') { }
4 0 elsif ($reftype eq 'ARRAY') { }
1295 0 21 if ($target eq '.') { }
0 21 elsif ($target eq '..') { }
15 6 elsif ($reftype eq 'HASH') { }
6 0 elsif ($reftype eq 'ARRAY') { }
1301 0 0 if scalar @{$$self{'namepath'};} > 1
1302 0 0 if scalar @{$$self{'namepath'};} <= 1
1314 0 0 if $$self{'warning'}
1351 0 0 if ($target eq '.') { }
0 0 elsif ($target eq '..') { }
0 0 elsif ($reftype eq 'REF') { }
0 0 elsif ($reftype eq 'HASH') { }
0 0 elsif ($reftype eq 'ARRAY') { }
1358 0 0 if scalar @{$$self{'namepath'};} > 1
1360 0 0 if scalar @{$$self{'namepath'};} <= 1
1376 0 0 if $$self{'warning'}
1406 7 53 if (exists $seen{$$self{'refpath'}[$i]} and not exists $seen_twice{$$self{'refpath'}[$i]})
1420 14 46 if exists $seen_twice{$$self{'refpath'}[$i]}
1437 0 0 if (defined $arg and $arg =~ /show/) { }
1497 0 0 if (defined $arg and $arg ne '') { }
1503 0 0 unless (exists $$self{$key})
1511 0 0 if ($$self{$key} =~ /^(?:0|-?[1-9]\d{0,8})$/) { }
1524 0 0 if ($$self{$_} =~ /^(?:0|-?[1-9]\d{0,8})$/) { }
1544 0 80 unless defined $cmd
1550 0 80 if ($cmd =~ /^(pwd)$/) { }
0 80 elsif ($cmd =~ /^\s*(help|h)\s*$/) { }
0 80 elsif ($cmd =~ /^\s*help\s+(set|show)\s*$/) { }
26 54 elsif ($cmd =~ /^\s*(cd|chdir)\s+(.+)$/) { }
14 40 elsif ($cmd =~ /^\s*(lal|lla|all|ll\s+-?a|ls\s+-?al|ls\s+-?la|dir|ls\s+-?a\s+-?l|ls\s+-?l\s+-?a|la\s+-?l)\s*$/) { }
6 34 elsif ($cmd =~ /^\s*(ll|ls\s+-?l|ls\s+-?l)\s*$/) { }
5 29 elsif ($cmd =~ /^\s*(ls\s+-?a|la)\s*$/) { }
2 27 elsif ($cmd =~ /^\s*(l|ls)\s*$/) { }
21 6 elsif ($cmd =~ /^\s*(cat|type|print|p)\s+(.+?)\s*$/) { }
0 6 elsif ($cmd =~ /^\s*(dump|d)\s+(.+?)\s*(\d*)$/) { }
0 6 elsif ($cmd =~ /^\s*(dump|d)\s*$/) { }
6 0 elsif ($cmd =~ /^\s*set\s+(\S+?)\s+(.+)$/i) { }
0 0 elsif ($cmd =~ /^\s*show(.*)$/i) { }
1622 0 6 if $msg
1630 0 0 defined $1 ? :
1655 0 0 if (defined $_[0] and $_[0] eq $class and defined $_[1] and ref $_[1]) { }
0 0 elsif (defined $_[0] and ref $_[0] eq $class and defined $_[1] and ref $_[1]) { }
0 0 elsif (ref $_[0] eq $class and defined $_[0]{'cursor'}) { }
0 0 elsif (defined $Data::Walker::WALKER and ref $Data::Walker::WALKER eq 'Data::Walker') { }
1664 0 0 unless $self->walk($ref)
1672 0 0 unless $self->walk($ref)
1703 0 0 unless /\S/
1705 0 0 if /^\s*(q|qu|quit|ex|exi|exti|exit)\s*$/i
1711 0 0 if (s/^\s*(\!|eval)\s+//) { }
1719 0 0 if scalar @{$$self{'refpath'};} > 1
1720 0 0 if scalar @{$$self{'refpath'};} == 1
1727 0 0 unless defined $res