Branch Coverage

blib/lib/Data/Sofu.pm
Criterion Covered Total %
branch 286 490 58.3


line true false branch
42 787 173 unless ref $ref
43 101 72 if ref $ref eq 'SCALAR'
44 15 57 if ref $ref eq 'Data::Sofu::Reference'
49 2 56 unless $sofu
50 0 58 if (wantarray) { }
58 0 2 unless $sofu
62 2 33 unless $sofu
66 0 0 unless $sofu
71 1 23 unless $sofu
76 0 2 unless $sofu
81 0 0 unless $sofu
83 0 0 if ($class eq 'Data::Sofu')
91 0 0 unless $sofu
96 0 24 unless $sofu
101 0 1 unless $sofu
106 0 2 unless $sofu
111 0 44 unless $sofu
116 0 0 unless $sofu
121 0 0 unless $sofu
126 0 8 unless $sofu
131 0 2 unless $sofu
168 0 0 if $key eq '='
178 0 2 if (ref $file and ref $file ne 'GLOB')
190 2 6 if $key eq '='
198 58 0 if (@_)
220 23 12 if (not ref $file) { }
12 0 elsif (ref $file eq 'SCALAR') { }
0 0 elsif (ref $file eq 'GLOB') { }
222 0 23 unless open $fh, '<:raw', $$self{'CurFile'}
229 0 12 if utf8::is_utf8($$file)
230 12 0 unless utf8::is_utf8($$file)
244 28 7 if ($b eq 'So')
246 28 0 if ($b eq 'Sofu')
251 32 3 if ($b eq "\000\000" || $b eq "\cA\000" || $b eq "\000\cA" and $c ne "\376")
253 0 32 unless $bdriver
256 0 32 if (wantarray)
263 3 0 if ($guess)
265 3 0 if ref $enc
266 0 3 unless ref $enc
268 0 3 if substr($text, 0, 1) eq ''
269 0 3 if ref $file
287 29 24 if ($_[0])
288 29 0 if (ref $_[0] eq 'HASH') { }
295 29 24 if $data
301 0 24 if ($_[0])
302 0 0 if (ref $_[0] eq 'HASH') { }
309 0 24 if $data
344 0 801 unless $$self{'PreserveCommentary'}
346 26 775 unless $tree
347 7 794 if ($$self{'Commentary'}{$tree})
349 3 4 if $$self{'TREE'}
352 0 7 if $res and $res ne ' '
366 0 150 if ($$self{'Ref'}{$ref} and $$self{'TREE'})
377 500 100 if (not ref $r) { }
50 50 elsif (ref $r eq 'HASH') { }
50 0 elsif (ref $r eq 'ARRAY') { }
404 50 100 if ($$self{'Ref'}{$ref} and $$self{'TREE'})
411 76 24 if $deep or not $$self{'Libsofucompat'}
414 0 225 if not $wkey or $wkey =~ /[\=\"\}\{\(\)\s\n]/
416 50 175 if (not ref $$ref{$_}) { }
75 100 elsif (ref $$ref{$_} eq 'HASH') { }
100 0 elsif (ref $$ref{$_} eq 'ARRAY') { }
432 76 24 if $deep or not $$self{'Libsofucompat'}
441 1 23 if (not ref $file) { }
1 22 elsif (ref $file eq 'SCALAR') { }
22 0 elsif (ref $file eq 'GLOB') { }
443 0 1 unless open $fh, '>:raw:encoding(UTF-16)', $$self{'CurFile'}
448 0 1 unless open $fh, '>:utf8', $file
463 24 0 unless $$self{'SetIndent'}
468 0 24 if (not ref $ref) { }
24 0 elsif (ref $ref eq 'HASH') { }
0 0 elsif (ref $ref eq 'ARRAY') { }
501 48 12 if (not ref $file) { }
12 0 elsif (ref $file eq 'SCALAR') { }
0 0 elsif (ref $file eq 'GLOB') { }
503 0 48 unless open $fh, $$self{'CurFile'}
510 2 10 if utf8::is_utf8($$file)
511 12 0 unless utf8::is_utf8($$file)
525 23 37 if ($b eq 'So')
527 23 0 if ($b eq 'Sofu')
532 26 34 if ($b eq "\000\000" || $b eq "\cA\000" || $b eq "\000\cA" and $u ne "\376")
534 0 26 unless $bdriver
538 0 26 if (wantarray)
545 30 4 if ($guess)
547 28 2 if ref $enc
548 2 28 unless ref $enc
550 4 30 if ref $file
552 2 32 if substr($text, 0, 1) eq ''
555 0 34 if (wantarray)
556 0 0 unless $u
557 0 0 if ref $u eq 'HASH'
560 0 34 unless $u
561 34 0 if ref $u eq 'HASH'
576 0 1 if $$self{'SetIndent'}
578 0 1 if (not ref $ref) { }
1 0 elsif (ref $ref eq 'HASH') { }
0 0 elsif (ref $ref eq 'ARRAY') { }
608 0 39 unless defined $c
609 2 37 if ($c eq '{') { }
0 37 elsif ($c eq '(') { }
0 37 elsif ($c eq '"') { }
0 37 elsif ($c eq '<') { }
37 0 elsif (not $c =~ /[\=\"\}\{\(\)\s\n]/) { }
615 0 2 if ($c = $self->get)
626 0 0 if ($c = $self->get)
638 0 0 if ($c = $self->get)
646 0 0 if ($x eq '!' or $x eq 'S' or $x eq '?') { }
648 0 0 unless $mldriver
649 0 0 if ($$self{'OBJECT'})
662 0 0 if ($c = $self->get)
675 0 37 if ($c = $self->get)
688 99 17703 if ($$self{'Ret'})
692 0 0 if @_ and $_[0] and $_[0] != ''
693 0 17703 unless $$self{'LENGTH'}
694 137 17566 if $$self{'COUNT'} >= $$self{'LENGTH'}
696 0 17566 if $$self{'Debug'}
698 1536 16030 if ($c eq '"')
699 1536 0 unless $$self{'Escape'}
701 240 17326 if ($c eq '\\') { }
707 78 0 if ($c eq '#' and not $$self{'String'} and not $$self{'Escape'})
720 1678 15888 if ($c and $c eq "\n")
724 0 17566 if not defined $c and $$self{'Debug'}
733 47 2605 unless $tree
735 73 2579 if @{$$self{'COMMENT'};}
742 3 36 if ($$self{'OBJECT'}) { }
744 0 15 if ${$e;}->valid
746 3 12 if $target and not $target =~ /^->/
747 15 0 if $$self{'Ref'}{$target}
750 12 0 if $$self{'Ref'}{$key}
756 6 95 if $target and not $target =~ /^->/
758 101 0 if $$self{'Ref'}{$target}
776 25 582 unless defined $text
777 0 582 if ($fullescape) { }
779 0 0 ord $1 > 65535 ? :
797 192 768 if ($noescape) { }
798 116 76 if ($ttext =~ /^\@(.+)$/)
800 15 101 if ($$self{'OBJECT'})
807 15 61 if ($$self{'OBJECT'})
808 3 12 if $ttext eq 'UNDEF'
811 37 24 if $ttext eq 'UNDEF'
821 240 6803 if ($char eq '\\') { }
822 0 240 if $escape
826 240 6563 if ($escape) { }
827 200 40 if (lc $char eq 'n') { }
40 0 elsif (lc $char eq 'r') { }
0 0 elsif (lc $char eq '"') { }
0 0 elsif ($char eq 'u') { }
0 0 elsif ($char eq 'U') { }
856 42 726 if $$self{'OBJECT'}
870 0 4587 if $$self{'Debug'}
871 2123 2464 if (not $char =~ /[\=\"\}\{\(\)\s\n]/s) { }
360 2104 elsif ($char eq '=') { }
80 2024 elsif ($char eq '{') { }
124 1900 elsif ($char eq '}') { }
77 1823 elsif ($char eq '"') { }
160 1663 elsif ($char eq '(') { }
0 1663 elsif ($char eq ')') { }
872 43 2080 if ($eq) { }
879 43 0 if refe($result{$keyu})
888 0 360 if $comp eq ''
894 0 80 unless $eq
895 0 80 if $comp eq ''
910 9 115 if $$self{'OBJECT'}
914 0 77 unless ($eq)
921 0 77 unless $eq
922 0 77 if $comp eq ''
931 0 160 unless ($eq)
934 0 160 unless $eq
935 0 160 if $comp eq ''
951 3 32 if $$self{'OBJECT'}
968 0 915 if $$self{'Debug'}
969 739 176 if ($in) { }
970 77 662 if ($char eq '"') { }
0 662 elsif ($char eq '\\') { }
971 0 77 if ($escape) { }
977 0 77 if refe($result[-1])
986 0 0 if ($escape) { }
1001 14 162 if (not $char =~ /[\=\"\}\{\(\)\s\n]/s) { }
0 162 elsif ($char eq '=') { }
0 162 elsif ($char eq '"') { }
0 162 elsif ($char eq '{') { }
39 123 elsif ($char =~ /[\}\)]/) { }
0 123 elsif ($char eq '(') { }
0 123 elsif ($char eq ')') { }
1003 0 14 if (@result > 1) { }
14 0 elsif (@result) { }
1007 0 0 if $$self{'OBJECT'}
1037 0 39 if ($cur ne '') { }
1038 0 0 if $$self{'OBJECT'}
1039 0 0 if (@result) { }
1043 0 0 if $$self{'OBJECT'}
1056 0 39 if (@result > 1) { }
39 0 elsif (@result) { }
1060 0 0 if $$self{'OBJECT'}
1073 0 0 if $$self{'OBJECT'}
1092 0 24 if ($cur ne '') { }
1093 0 0 if $$self{'OBJECT'}
1094 0 0 if (@result) { }
1099 0 0 if $$self{'OBJECT'}
1112 0 24 if (@result > 1) { }
24 0 elsif (@result) { }
1116 0 0 if $$self{'OBJECT'}
1128 0 0 if $$self{'OBJECT'}
1138 192 0 if @_
1141 0 1417 if $$self{'Debug'}
1142 1225 192 if (not $char =~ /[\=\"\}\{\(\)\s]/) { }
0 192 elsif ($char =~ /[\=\"\{\(]/) { }
9 183 elsif ($char =~ /[\}\)]/) { }
183 0 elsif ($char =~ /\s/) { }
1173 0 10649 if $$self{'Debug'}
1174 6304 4345 if ($in) { }
1175 691 5613 if ($char eq '"') { }
240 5373 elsif ($char eq '\\') { }
1176 0 691 if ($escape) { }
1182 0 691 if refe($result[-1])
1191 0 240 if ($escape) { }
1206 149 4196 if (not $char =~ /[\=\"\}\{\(\)\s\n]/) { }
0 4196 elsif ($char eq '=') { }
691 3505 elsif ($char eq '"') { }
40 3465 elsif ($char eq '{') { }
0 3465 elsif ($char eq '}') { }
80 3385 elsif ($char eq '(') { }
240 3145 elsif ($char eq ')') { }
1210 73 76 if refe($result[-1])
1240 18 222 if $$self{'OBJECT'}
1246 0 0 if $cur ne ''
1247 0 0 if $$self{'OBJECT'}
1252 0 1341 unless defined $key
1253 0 1341 unless $key
1260 0 370 if $key eq '<>'
1261 0 370 if $key eq ''
1278 0 8 unless $bdriver
1287 1 1 unless $mldriver
1288 0 2 if (not ref $file) { }
2 0 elsif (ref $file eq 'SCALAR') { }
0 0 elsif (ref $file eq 'GLOB') { }
1289 0 0 unless open $fh, '>:encoding(UTF-8)', $file
1292 0 2 unless open $fh, '>:utf8', $file
1309 0 2 unless $mldriver
1321 1 43 unless $bdriver
1322 36 8 if (not ref $file) { }
8 0 elsif (ref $file eq 'SCALAR') { }
0 0 elsif (ref $file eq 'GLOB') { }
1323 0 36 unless open $fh, '>:raw', $file
1326 0 8 unless open $fh, '>', $file