Condition Coverage

blib/lib/Data/Dump/Streamer.pm
Criterion Covered Total %
condition 303 474 63.9


and 3 conditions

line !l l&&!r l&&r condition
935 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
976 0 0 0 $self->{'ref_id'} and $self->{'sv_id'}
997 4212 72 406 $brace and not $rest
1043 705 427 0 substr($name, 0, 1) eq $type and $type ne "\$"
1084 0 0 0 $prefix and $oidx
1186 32 5 3 &blessed($_[0]) and &blessed($_[0]) eq "Data::Dump::Streamer"
1190 0 7 14 defined wantarray and not wantarray
1232 2 0 0 &blessed($_[0]) and &blessed($_[0]) eq "Data::Dump::Streamer"
1259 0 0 2 defined wantarray and not wantarray
1283 1 0 0 &blessed($_[0]) and &blessed($_[0]) eq "Data::Dump::Streamer"
1298 0 0 1 defined wantarray and not wantarray
1360 323 4 12 $self->{'svn'}[$idx] =~ /^\$\{?\$/ and not $name =~ /^\$\{?\$/
1427 28 17 11 $t eq "SCALAR" and not defined $$v
1513 1993 285 1 $class and $self->{'style'}{'ignore'}{".$class"}
1993 136 149 $class and not $self->{'cache_skip_freeze'}{$class}
1583 699 0 0 $Data::Dump::Streamer::DEBUG and print " Skipping '${cname}' as it is a dupe of " . "$self->{'refn'}[$idx]\n"
1595 1414 139 26 defined $class and overload::Overloaded($item)
1643 0 510 0 $keyary and &reftype($keyary) ne "ARRAY"
1672 508 2 0 $key_len > 8 && 0.66666666666666663 * $key_len > $avg
1782 21 0 6 $rt ne "SCALAR" and $rt ne "GLOB"
21 3 3 $rt ne "SCALAR" and $rt ne "GLOB" and $rt ne "REF"
1846 0 0 56 $self->{'style'}{'deparse'} && $self->{'style'}{'deparseglob'}
0 0 28 $inc_format && $self->{'style'}{'deparse'} && $self->{'style'}{'deparseglob'}
1889 180 0 110 $$self{$type . "du"}[$rhs] and ${$$self{$type . "du"}[$rhs];}
1905 76 85 275 $$self{$type . "du"}[$rhs] and ${$$self{$type . "du"}[$rhs];}
1921 0 0 8 $self->{'refdu'}[$lhs] and ${$self->{'refdu'}[$lhs];}
1975 48 0 52 $self->{'svdu'}[$$_] && ${$self->{'svdu'}[$$_];}
1993 28 0 0 $Data::Dump::Streamer::DEBUG and $name
1998 25 0 3 defined &blessed($lhs) and overload::Overloaded($lhs)
2008 27 17 11 $t eq "SCALAR" and not defined $$v
2018 27 17 0 do { $self->{'refd'}[$gidx] < $depth + 1 } && do { $self->_add_fix('ref', $name, $gidx, &blessed(scalar *$lhs{$t})); next }
2036 0 0 28 $self->{'style'}{'deparse'} and $self->{'style'}{'deparseglob'}
2138 0 341 12 not $self->{'in_printit'} and @_ || !$self->{'cataloged'}
2193 351 0 2 $self->{'style'}{'compress'} and $self->{'style'}{'compressor'}
2219 0 0 353 $self->{'return'} and defined wantarray
2266 1159 0 93 $self->{'svd'}[$idx] == $depth && $self->{'svn'}[$idx] ne $clean_name && !($clean_name =~ /\*/) && !($name =~ /^\&/)
2275 1322 11 163 $pre_dumped and not $self->{'svon'}{$idx}
2286 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
2299 116 34 70 $self->{'svd'}[$idx] == 1 and not $self->{'style'}{'declare'}
98 18 34 $pre_dumped and $$pre_dumped
2363 1180 0 0 $Data::Dump::Streamer::DEBUG and $self->{'special'}{$idx}
2378 602 0 139 $name ne $clean_name and not $name =~ /^\*/
602 0 139 $name ne $clean_name and not $name =~ /^\*/ and $self->{'svc'}[$idx] > 1
2405 543 0 189 $self->{'style'}{'declare'} && !($name =~ /^\*/) && !$self->{'lexicals'}{'added'}{$name}
2430 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 '' }
2450 1083 42 11 $self->{'style'}{'ro'} && $ro && !$is_ref
2451 1125 10 1 $is_ro and not $self->{'style'}{'purity'}
1135 0 1 $is_ro and not $self->{'style'}{'purity'} and not $self->{'style'}{'terse'}
2461 0 0 19 $self->{'style'}{'dumpglob'} and not $self->{'sv_glob_du'}{$glob}++
2472 962 150 2 &_could_be_dualvar($item) and 0 + $item ne $item
1112 0 2 &_could_be_dualvar($item) and 0 + $item ne $item and "$item" != $item
2487 1112 0 2 $style->{'compress'} and $style->{'compressor'}
0 0 2 $style->{'compress'} and $style->{'compressor'} and length $_[1] > $style->{'compress'}
2503 1124 1 9 $is_ro and $self->{'style'}{'purity'}
2517 1800 4 198 $is_ref && !$add_do
2641 0 1020 0 $ary and &reftype($ary) ne "ARRAY"
2652 0 510 0 $keyary and $Data::Dump::Streamer::DEBUG
2659 4 357 149 $self->{'style'}{'indent'} && (!defined($self->{'ref_hkcnt'}{$addr}) || $self->{'ref_hkcnt'}{$addr} > 1)
2664 361 0 149 $ind && $self->{'style'}{'indentkeys'}
2682 10 0 686 $ind && !$last_n
2685 0 10 0 not $do_ind || $optspace and $self->{'buf'} > 1024
2714 1186 0 6 not $full_indent || $self->{'do_nl'} and $self->{'buf'} < 60
2736 4 45 342 $self->{'style'}{'indent'} && @$item > 1
2744 0 0 18 $ind && (!$last_n || ref $item->[$k])
2747 0 0 0 not $do_ind || $optspace and $self->{'buf'} > 1024
2759 18 0 0 not $full_indent || $self->{'do_nl'} and $self->{'buf'} < 60
2780 680 347 16 not &refaddr($item->[$k]) || &readonly($item->[$k]) and !$self->{'sv'}{&refaddr(\$item->[$k])} || $self->{'svt'}[$self->{'sv'}{&refaddr(\$item->[$k])}] == 1
2788 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]
2816 49 0 994 $ind && (!$last_n || ref $item->[$k])
2819 49 340 654 $do_ind and $k
2826 1025 0 18 not $full_indent || $self->{'do_nl'} and $self->{'buf'} < 60
2901 0 40 0 not defined $bless and $@
40 0 0 not defined $bless and $@ and $@ =~ /^Usage\:\ \-\>coderef2text\(CODEREF\)/
2988 0 0 9 $self->{'style'}{'dumpglob'} and not $self->{'sv_glob_du'}{$glob}++
3003 1756 232 19 $class and $class eq "Regexp"
1988 0 19 $class and $class eq "Regexp" and &is_regexp($item)
3026 1775 226 1 defined $class and $self->{'style'}{'ignore'}{".$class"}
3047 1630 189 182 $pre_dumped and $$pre_dumped
3075 227 36 38 $self->{'refn'}[$idx] =~ /^[\@\%\&]/ and not $self->{'style'}{'declare'}
3111 1372 120 26 defined $class and overload::Overloaded($item)
3126 3 1 0 $inline and $thawtype eq "sub"
3132 1008 472 38 $type eq 'HASH' && &SvREADONLY_ref($item)
3148 1372 36 110 defined $class && !($name =~ /^[\@\%\&]/)
3149 1408 26 84 $add_bless and not $overloaded
3210 1510 4 4 $fix_lock and not defined $class
3279 56 4 0 @_ == 1 && &reftype($_[0]) eq 'ARRAY'
3284 0 133 0 $s and not $s =~ /^\*?\w+$/
3395 5 0 3 $val == 0 and length $self->{'style'}{'optspace'}
3758 0 2 0 @_ > 1 and @_ % 2
3851 8 1 0 @_ > 2 and @_ % 2
3877 0 5 0 !$subref || $name eq '.' and &reftype($subref) ne "CODE"
4009 0 6 39 $cache{&Data::Dump::Streamer::refaddr($self)} and $cache{&Data::Dump::Streamer::refaddr($self)}{$targ}

or 2 conditions

line l !l condition
924 431 364 $indx or 0
323 472 $self->{'unames'} || []
951 151 4 &reftype($_[1]) || ''
969 0 0 shift() || \*STDOUT
977 0 0 $self->{'ref_id'} || 0
1068 0 0 shift() || ''
1196 0 7 $obj ||= "Data::Dump::Streamer"
1266 0 0 $obj ||= "Data::Dump::Streamer"
1305 0 0 $obj ||= "Data::Dump::Streamer"
2253 0 0 $idx || 0
2557 2 49 $counts{$_} || 0
2965 0 0 $1 || 0

or 3 conditions

line l !l&&r !l&&!r condition
898 0 0 4768 not defined $key or $key eq ""
776 3460 532 $key =~ /$numeric_rex/ or $key =~ /\A-?[A-Za-z_]\w*\z/
927 428 80 0 &blessed($_[1]) || &reftype($_[1]) || (&readonly($_[1]) && \$_[1] != \(undef) ? 'RO' : 'VAR')
934 0 2 0 $self->{'type_abrv'}{$name} ||= $name
1017 2913 296 1371 $name =~ /^([\@\%\$])(\w+)$/ or $sigil
3209 36 1335 $name =~ /^([\@\%\$])(\w+)$/ or $sigil or $name =~ /^\*.*\{(?:SCALAR|HASH|ARRAY)\}$/
1022 2766 0 479 not $name =~ s/^[\@\%]/\$/ or $sigil
1041 637 16 479 $name =~ /[\[\{]/ or $name =~ /^\*/
1191 1 13 0 $obj ||= "Data::Dump::Streamer"->new
1248 0 17 0 $pad_vars{&refaddr($ref)} ||= $var
1260 0 2 0 $obj ||= "Data::Dump::Streamer"->new
1299 0 1 0 $obj ||= "Data::Dump::Streamer"->new
1450 352 0 0 $args_insideout{&refaddr($self)} || Carp::carp('No arguments!')
1513 0 1 2278 $self->{'style'}{'ignore'}{"#$raddr"} or $class and $self->{'style'}{'ignore'}{".$class"}
1601 180 349 1050 $reftype eq "SCALAR" or $reftype eq "REF"
529 19 1031 $reftype eq "SCALAR" or $reftype eq "REF" or $reftype eq "GLOB"
2008 57 17 38 not defined $v or $t eq "SCALAR" and not defined $$v
2138 0 12 341 @_ || !$self->{'cataloged'}
2256 3569 1 0 $name ||= $self->{'svn'}[$idx]
2275 141 12 1020 $self->{'svd'}[$idx] < $depth || $name_diff
163 153 1180 $pre_dumped and not $self->{'svon'}{$idx} or !$self->{'svon'}{$idx} ? $self->{'svd'}[$idx] < $depth || $name_diff : undef
2299 70 34 116 $self->{'svd'}[$idx] == 1 and not $self->{'style'}{'declare'} or $pre_dumped and $$pre_dumped
2360 11 1169 0 $self->{'svdu'}[$idx] ||= $dumped
2401 5 4 732 $self->{'style'}{'terse'} or $name =~ /^\&/
2630 6 775 239 $self->{'style'}{'sortkeys'}{"#$addr"} || $self->{'cache_sorter'}{$class}
2635 0 0 227 $self->{'style'}{'sortkeys'}{".$class"} || $class && $class->can('DDS_sortkeys') || $self->{'style'}{'sortkeys'}{'.'}
2638 12 227 0 $sorter ||= $default_key_sorters{'smart'}
2685 0 0 10 $do_ind || $optspace
2714 1178 8 6 $full_indent || $self->{'do_nl'}
2747 0 0 0 $do_ind || $optspace
2759 18 0 0 $full_indent || $self->{'do_nl'}
2780 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
2788 240 4 14 !$self->{'sv'}{&refaddr(\$$item[$k + $count])} || $self->{'svt'}[$self->{'sv'}{&refaddr(\$$item[$k + $count])}] == 1
2826 1025 0 18 $full_indent || $self->{'do_nl'}
3026 5 1997 0 $raddr || $addr
0 0 2002 $ignore or $self->{'style'}{'ignore'}{"#" . ($raddr || $addr)}
0 2 2000 $ignore or $self->{'style'}{'ignore'}{"#" . ($raddr || $addr)} or defined $class and $self->{'style'}{'ignore'}{".$class"}
3047 189 112 1518 $pre_dumped or $self->{'refd'}[$idx] < $depth
3103 0 1518 0 $self->{'refdu'}[$idx] ||= $dumped
3116 4 1514 0 $raddr or $addr
3154 159 343 1016 $type eq "SCALAR" or $type eq "REF"
502 19 997 $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"
3236 4 1514 0 $raddr or $addr
3395 3 0 2 $self->{'style'}{'indent'} || length $self->{'style'}{'optspace'}
3867 0 0 0 $self->{'style'}{'sortkeys_string'}{$name} || $self->{'style'}{'sortkeys'}{$name}
3877 0 5 0 !$subref || $name eq '.'
3882 5 0 0 $subref ||= $obj->can($val)
3883 0 0 0 ref $obj || $obj