Condition Coverage

blib/lib/Data/Dump/Streamer.pm
Criterion Covered Total %
condition 302 474 63.7


and 3 conditions

line !l l&&!r l&&r condition
914 0 2 0 $n <= length $abr and $self->{'type_abrv'}{substr $abr, 0, $n}
2 0 0 $n <= length $abr and $self->{'type_abrv'}{substr $abr, 0, $n} and $self->{'type_abrv'}{substr $abr, 0, $n} ne $name
954 0 0 0 $self->{'ref_id'} and $self->{'sv_id'}
973 4211 72 406 $brace and not $rest
1014 705 427 0 substr($name, 0, 1) eq $type and $type ne "\$"
1055 0 0 0 $prefix and $oidx
1161 26 5 3 &blessed($_[0]) and &blessed($_[0]) eq "Data::Dump::Streamer"
1165 0 7 8 defined wantarray and not wantarray
1205 2 0 0 &blessed($_[0]) and &blessed($_[0]) eq "Data::Dump::Streamer"
1233 0 0 2 defined wantarray and not wantarray
1257 1 0 0 &blessed($_[0]) and &blessed($_[0]) eq "Data::Dump::Streamer"
1271 0 0 1 defined wantarray and not wantarray
1333 323 4 12 $self->{'svn'}[$idx] =~ /^\$\{?\$/ and not $name =~ /^\$\{?\$/
1399 28 17 11 $t eq "SCALAR" and not defined $$v
1490 1990 285 1 $class and $self->{'style'}{'ignore'}{".$class"}
1990 136 149 $class and not $self->{'cache_skip_freeze'}{$class}
1551 700 0 0 $Data::Dump::Streamer::DEBUG and print " Skipping '${cname}' as it is a dupe of " . "$self->{'refn'}[$idx]\n"
1563 1410 141 26 defined $class and overload::Overloaded($item)
1609 0 509 0 $keyary and &reftype($keyary) ne "ARRAY"
1633 507 2 0 $key_len > 8 && 0.66666666666666663 * $key_len > $avg
1726 21 0 6 $rt ne "SCALAR" and $rt ne "GLOB"
21 3 3 $rt ne "SCALAR" and $rt ne "GLOB" and $rt ne "REF"
1781 0 0 56 $self->{'style'}{'deparse'} && $self->{'style'}{'deparseglob'}
0 0 28 $inc_format && $self->{'style'}{'deparse'} && $self->{'style'}{'deparseglob'}
1816 180 0 110 $$self{$type . "du"}[$rhs] and ${$$self{$type . "du"}[$rhs];}
1829 76 85 275 $$self{$type . "du"}[$rhs] and ${$$self{$type . "du"}[$rhs];}
1842 0 0 8 $self->{'refdu'}[$lhs] and ${$self->{'refdu'}[$lhs];}
1879 48 0 52 $self->{'svdu'}[$$_] && ${$self->{'svdu'}[$$_];}
1894 28 0 0 $Data::Dump::Streamer::DEBUG and $name
1899 25 0 3 defined &blessed($lhs) and overload::Overloaded($lhs)
1910 27 17 11 $t eq "SCALAR" and not defined $$v
1922 27 17 0 do { $self->{'refd'}[$gidx] < $depth + 1 } && do { $self->_add_fix('ref', $name, $gidx, &blessed(scalar *$lhs{$t})); next }
1937 0 0 28 $self->{'style'}{'deparse'} and $self->{'style'}{'deparseglob'}
2037 0 341 7 not $self->{'in_printit'} and @_ || !$self->{'cataloged'}
2092 346 0 2 $self->{'style'}{'compress'} and $self->{'style'}{'compressor'}
2114 0 0 348 $self->{'return'} and defined wantarray
2167 1154 0 93 $self->{'svd'}[$idx] == $depth && $self->{'svn'}[$idx] ne $clean_name && !($clean_name =~ /\*/) && !($name =~ /^\&/)
2178 1317 11 163 $pre_dumped and not $self->{'svon'}{$idx}
2183 316 0 0 $Data::Dump::Streamer::DEBUG and $self->{'svon'}{$idx}
0 0 0 $Data::Dump::Streamer::DEBUG and $self->{'svon'}{$idx} and $pre_dumped
0 0 0 $Data::Dump::Streamer::DEBUG and $self->{'svon'}{$idx} and $pre_dumped and $$pre_dumped
2193 116 34 70 $self->{'svd'}[$idx] == 1 and not $self->{'style'}{'declare'}
98 18 34 $pre_dumped and $$pre_dumped
2245 1175 0 0 $Data::Dump::Streamer::DEBUG and $self->{'special'}{$idx}
2258 597 0 139 $name ne $clean_name and not $name =~ /^\*/
597 0 139 $name ne $clean_name and not $name =~ /^\*/ and $self->{'svc'}[$idx] > 1
2279 543 0 189 $self->{'style'}{'declare'} && !($name =~ /^\*/) && !$self->{'lexicals'}{'added'}{$name}
2302 32 173 35 $self->{'style'}{'purity'} && !$ro && $is_ref && !&blessed($_[1]) && !$glob && do { my $rtype = &reftype($_[1]); $rtype eq 'SCALAR' and $] < 5.02 || !&readonly(${$_[1];}) unless $rtype eq '' }
2322 1082 42 10 $self->{'style'}{'ro'} && $ro && !$is_ref
2323 1124 9 1 $is_ro and not $self->{'style'}{'purity'}
1133 0 1 $is_ro and not $self->{'style'}{'purity'} and not $self->{'style'}{'terse'}
2333 0 0 19 $self->{'style'}{'dumpglob'} and not $self->{'sv_glob_du'}{$glob}++
2342 960 150 2 &_could_be_dualvar($item) and 0 + $item ne $item
1110 0 2 &_could_be_dualvar($item) and 0 + $item ne $item and "$item" != $item
2350 1110 0 2 $style->{'compress'} and $style->{'compressor'}
0 0 2 $style->{'compress'} and $style->{'compressor'} and length $_[1] > $style->{'compress'}
2365 1124 1 9 $is_ro and $self->{'style'}{'purity'}
2376 1796 4 198 $is_ref && !$add_do
2492 0 1017 0 $ary and &reftype($ary) ne "ARRAY"
2504 0 508 0 $keyary and $Data::Dump::Streamer::DEBUG
2510 4 355 149 $self->{'style'}{'indent'} && (!defined($self->{'ref_hkcnt'}{$addr}) || $self->{'ref_hkcnt'}{$addr} > 1)
2514 359 0 149 $ind && $self->{'style'}{'indentkeys'}
2532 10 0 686 $ind && !$last_n
2535 0 10 0 not $do_ind || $optspace and $self->{'buf'} > 1024
2563 1185 0 6 not $full_indent || $self->{'do_nl'} and $self->{'buf'} < 60
2585 4 44 342 $self->{'style'}{'indent'} && @$item > 1
2593 0 0 18 $ind && (!$last_n || ref $item->[$k])
2596 0 0 0 not $do_ind || $optspace and $self->{'buf'} > 1024
2610 18 0 0 not $full_indent || $self->{'do_nl'} and $self->{'buf'} < 60
2630 680 347 16 not &refaddr($item->[$k]) || &readonly($item->[$k]) and !$self->{'sv'}{&refaddr(\$item->[$k])} || $self->{'svt'}[$self->{'sv'}{&refaddr(\$item->[$k])}] == 1
2635 75 15 258 $k + $count <= $#$item and not &refaddr($$item[$k + $count])
90 0 258 $k + $count <= $#$item and not &refaddr($$item[$k + $count]) and not &readonly($$item[$k + $count])
15 14 244 $k + $count <= $#$item and not &refaddr($$item[$k + $count]) and not &readonly($$item[$k + $count]) and !$self->{'sv'}{&refaddr(\$$item[$k + $count])} || $self->{'svt'}[$self->{'sv'}{&refaddr(\$$item[$k + $count])}] == 1
14 20 224 $k + $count <= $#$item and not &refaddr($$item[$k + $count]) and not &readonly($$item[$k + $count]) and !$self->{'sv'}{&refaddr(\$$item[$k + $count])} || $self->{'svt'}[$self->{'sv'}{&refaddr(\$$item[$k + $count])}] == 1 and !$v == !$$item[$k + $count]
34 0 224 $k + $count <= $#$item and not &refaddr($$item[$k + $count]) and not &readonly($$item[$k + $count]) and !$self->{'sv'}{&refaddr(\$$item[$k + $count])} || $self->{'svt'}[$self->{'sv'}{&refaddr(\$$item[$k + $count])}] == 1 and !$v == !$$item[$k + $count] and defined $v == defined $$item[$k + $count]
2661 49 0 994 $ind && (!$last_n || ref $item->[$k])
2664 49 340 654 $do_ind and $k
2673 1025 0 18 not $full_indent || $self->{'do_nl'} and $self->{'buf'} < 60
2744 0 39 0 not defined $bless and $@
39 0 0 not defined $bless and $@ and $@ =~ /^Usage\:\ \-\>coderef2text\(CODEREF\)/
2824 0 0 9 $self->{'style'}{'dumpglob'} and not $self->{'sv_glob_du'}{$glob}++
2839 1752 232 19 $class and $class eq "Regexp"
1984 0 19 $class and $class eq "Regexp" and &is_regexp($item)
2860 1771 226 1 defined $class and $self->{'style'}{'ignore'}{".$class"}
2880 1626 189 182 $pre_dumped and $$pre_dumped
2902 227 36 38 $self->{'refn'}[$idx] =~ /^[\@\%\&]/ and not $self->{'style'}{'declare'}
2928 1368 120 26 defined $class and overload::Overloaded($item)
2942 3 1 0 $inline and $thawtype eq "sub"
2948 1006 470 38 $type eq 'HASH' && &SvREADONLY_ref($item)
2965 1368 36 110 defined $class && !($name =~ /^[\@\%\&]/)
2966 1404 26 84 $add_bless and not $overloaded
3013 1506 4 4 $fix_lock and not defined $class
3076 56 4 0 @_ == 1 && &reftype($_[0]) eq 'ARRAY'
3081 0 133 0 $s and not $s =~ /^\*?\w+$/
3190 5 0 3 $val == 0 and length $self->{'style'}{'optspace'}
3549 0 2 0 @_ > 1 and @_ % 2
3639 8 1 0 @_ > 2 and @_ % 2
3662 0 5 0 !$subref || $name eq '.' and &reftype($subref) ne "CODE"
3787 0 6 39 $cache{&Data::Dump::Streamer::refaddr($self)} and $cache{&Data::Dump::Streamer::refaddr($self)}{$targ}

or 2 conditions

line l !l condition
904 431 359 $indx or 0
323 467 $self->{'unames'} || []
930 151 4 &reftype($_[1]) || ''
947 0 0 shift() || \*STDOUT
955 0 0 $self->{'ref_id'} || 0
1038 0 0 shift() || ''
1170 0 7 $obj ||= "Data::Dump::Streamer"
1239 0 0 $obj ||= "Data::Dump::Streamer"
1277 0 0 $obj ||= "Data::Dump::Streamer"
2154 0 0 $idx || 0
2416 2 49 $counts{$_} || 0
2802 0 0 $1 || 0

or 3 conditions

line l !l&&r !l&&!r condition
880 0 0 4764 not defined $key or $key eq ""
776 3456 532 $key =~ /$numeric_rex/ or $key =~ /\A-?[A-Za-z_]\w*\z/
907 424 79 0 &blessed($_[1]) || &reftype($_[1]) || (&readonly($_[1]) && \$_[1] != \(undef) ? 'RO' : 'VAR')
913 0 2 0 $self->{'type_abrv'}{$name} ||= $name
992 2911 296 1372 $name =~ /^([\@\%\$])(\w+)$/ or $sigil
3207 36 1336 $name =~ /^([\@\%\$])(\w+)$/ or $sigil or $name =~ /^\*.*\{(?:SCALAR|HASH|ARRAY)\}$/
997 2764 0 479 not $name =~ s/^[\@\%]/\$/ or $sigil
1012 637 16 479 $name =~ /[\[\{]/ or $name =~ /^\*/
1166 1 7 0 $obj ||= "Data::Dump::Streamer"->new
1222 0 17 0 $pad_vars{&refaddr($ref)} ||= $var
1234 0 2 0 $obj ||= "Data::Dump::Streamer"->new
1272 0 1 0 $obj ||= "Data::Dump::Streamer"->new
1423 347 0 0 $args_insideout{&refaddr($self)} || Carp::carp('No arguments!')
1490 0 1 2275 $self->{'style'}{'ignore'}{"#$raddr"} or $class and $self->{'style'}{'ignore'}{".$class"}
1570 180 349 1048 $reftype eq "SCALAR" or $reftype eq "REF"
529 19 1029 $reftype eq "SCALAR" or $reftype eq "REF" or $reftype eq "GLOB"
1910 57 17 38 not defined $v or $t eq "SCALAR" and not defined $$v
2037 0 7 341 @_ || !$self->{'cataloged'}
2157 3563 1 0 $name ||= $self->{'svn'}[$idx]
2178 141 12 1015 $self->{'svd'}[$idx] < $depth || $name_diff
163 153 1175 $pre_dumped and not $self->{'svon'}{$idx} or !$self->{'svon'}{$idx} ? $self->{'svd'}[$idx] < $depth || $name_diff : undef
2193 70 34 116 $self->{'svd'}[$idx] == 1 and not $self->{'style'}{'declare'} or $pre_dumped and $$pre_dumped
2242 11 1164 0 $self->{'svdu'}[$idx] ||= $dumped
2277 0 4 732 $self->{'style'}{'terse'} or $name =~ /^\&/
2482 6 773 238 $self->{'style'}{'sortkeys'}{"#$addr"} || $self->{'cache_sorter'}{$class}
2486 0 0 226 $self->{'style'}{'sortkeys'}{".$class"} || $class && $class->can('DDS_sortkeys') || $self->{'style'}{'sortkeys'}{'.'}
2489 12 226 0 $sorter ||= $default_key_sorters{'smart'}
2535 0 0 10 $do_ind || $optspace
2563 1177 8 6 $full_indent || $self->{'do_nl'}
2596 0 0 0 $do_ind || $optspace
2610 18 0 0 $full_indent || $self->{'do_nl'}
2630 671 9 363 &refaddr($item->[$k]) || &readonly($item->[$k])
291 2 70 !$self->{'sv'}{&refaddr(\$item->[$k])} || $self->{'svt'}[$self->{'sv'}{&refaddr(\$item->[$k])}] == 1
2635 240 4 14 !$self->{'sv'}{&refaddr(\$$item[$k + $count])} || $self->{'svt'}[$self->{'sv'}{&refaddr(\$$item[$k + $count])}] == 1
2673 1025 0 18 $full_indent || $self->{'do_nl'}
2860 5 1993 0 $raddr || $addr
0 0 1998 $ignore or $self->{'style'}{'ignore'}{"#" . ($raddr || $addr)}
0 2 1996 $ignore or $self->{'style'}{'ignore'}{"#" . ($raddr || $addr)} or defined $class and $self->{'style'}{'ignore'}{".$class"}
2880 189 112 1514 $pre_dumped or $self->{'refd'}[$idx] < $depth
2922 0 1514 0 $self->{'refdu'}[$idx] ||= $dumped
2933 4 1510 0 $raddr or $addr
2971 159 343 1012 $type eq "SCALAR" or $type eq "REF"
502 19 993 $type eq "SCALAR" or $type eq "REF" or $type eq "GLOB"
0 0 49 $type eq "ORANGE" or $type eq "Regexp"
0 49 0 $type eq "ORANGE" or $type eq "Regexp" or $type eq "REGEXP"
3034 4 1510 0 $raddr or $addr
3190 3 0 2 $self->{'style'}{'indent'} || length $self->{'style'}{'optspace'}
3653 0 0 0 $self->{'style'}{'sortkeys_string'}{$name} || $self->{'style'}{'sortkeys'}{$name}
3662 0 5 0 !$subref || $name eq '.'
3665 5 0 0 $subref ||= $obj->can($val)
3666 0 0 0 ref $obj || $obj