Branch Coverage

blib/lib/Config/Record.pm
Criterion Covered Total %
branch 167 260 64.2


line true false branch
42 2 9 exists $params{'record'} ? :
43 7 4 exists $params{'features'} ? :
49 7 4 if (defined $params{'file'})
61 9 0 if (@_) { }
0 0 elsif ($$self{'filename'}) { }
70 4 5 if (ref $file) { }
71 0 4 unless ($file->isa('IO::Handle'))
76 0 5 unless $fh = 'IO::File'->new($file)
83 4 5 ref $file ? :
84 0 9 unless $fh->close
111 0 0 defined $here ? :
0 0 defined $continuation ? :
0 545 if $$self{'debug'}
115 9 536 if $line =~ /^\s*#/
116 18 518 if $line =~ /^\s*$/
118 56 462 if ($here) { }
12 450 elsif ($continuation) { }
119 16 40 if ($line =~ /\s*$here\s*$/) { }
120 0 16 if $$self{'debug'}
124 0 40 if $$self{'debug'}
128 12 0 if ($line =~ /^\s*"(.*?)"\s*(\\)?\s*$/ or $line =~ /^\s*(.*?)\s*(\\)?\s*$/) { }
130 0 12 if $$self{'debug'}
132 12 0 unless $2
137 42 408 if ($line =~ /^\s*$LABEL\s*=\s*\($TRAILING_WHITESPACE$/ or $$self{'features'}{'quotedkeys'} and $line =~ /^\s*"$QUOTED_LABEL"\s*=\s*\($TRAILING_WHITESPACE$/) { }
8 400 elsif ($line =~ /^\s*\($TRAILING_WHITESPACE$/) { }
50 350 elsif ($line =~ /^\s*\)$TRAILING_WHITESPACE$/) { }
37 313 elsif ($line =~ /^\s*$LABEL\s*=\s*{$TRAILING_WHITESPACE$/ or $$self{'features'}{'quotedkeys'} and $line =~ /^\s*"$QUOTED_LABEL"\s*=\s*{$TRAILING_WHITESPACE$/) { }
33 280 elsif ($line =~ /^\s*{$TRAILING_WHITESPACE$/) { }
70 210 elsif ($line =~ /^\s*}$TRAILING_WHITESPACE$/) { }
1 209 elsif ($$self{'features'}{'includes'} and $line =~ /^\s*$LABEL\s*=\s*\@include\((.+)\)$TRAILING_WHITESPACE$/ || $$self{'features'}{'quotedkeys'} && $line =~ /^\s*"$QUOTED_LABEL"\s*=\s*\@include\((.+)\)$TRAILING_WHITESPACE$/) { }
8 201 elsif ($line =~ /^\s*$LABEL\s*=\s*<<(\w+)\s*$/ or $$self{'features'}{'quotedkeys'} and $line =~ /^\s*"$QUOTED_LABEL"\s*=\s*<<(\w+)\s*$/) { }
130 71 elsif ($line =~ /^\s*$LABEL\s*=\s*"(.*)"\s*(\\)?$TRAILING_WHITESPACE$/ or $$self{'features'}{'quotedkeys'} and $line =~ /^\s*"$QUOTED_LABEL"\s*=\s*"(.*)"\s*(\\)?$TRAILING_WHITESPACE$/ or $line =~ /^\s*$LABEL\s*=\s*(.*?)(\\)?\s*$/ or $$self{'features'}{'quotedkeys'} and $line =~ /^\s*"$QUOTED_LABEL"\s*=\s*(.*?)(\\)?\s*$/) { }
8 63 elsif ($line =~ /^\s*<<(\w+)\s*$/) { }
2 61 elsif ($$self{'features'}{'includes'} and $line =~ /^\s*\@include\((.+)\)$TRAILING_WHITESPACE$/) { }
61 0 elsif ($line =~ /^\s*"(.*)"\s*(\\)?$TRAILING_WHITESPACE$/ or $line =~ /^\s*(.*?)(\\)?\s*$/) { }
140 0 42 if $$self{'debug'}
141 0 42 if (ref $value eq 'ARRAY')
147 28 14 if ($$self{'features'}{'quotedkeys'})
156 0 8 if $$self{'debug'}
157 0 8 if (ref $value ne 'ARRAY')
166 0 50 if $$self{'debug'}
167 0 50 if (ref $value ne 'ARRAY')
170 0 50 if ($#stack == 0)
179 0 37 if $$self{'debug'}
180 0 37 if (ref $value eq 'ARRAY')
186 24 13 if ($$self{'features'}{'quotedkeys'})
195 0 33 if $$self{'debug'}
196 0 33 if (ref $value ne 'ARRAY')
205 0 70 if $$self{'debug'}
206 0 70 if (ref $value eq 'ARRAY')
209 0 70 if ($#stack == 0)
219 0 1 if $$self{'debug'}
223 0 1 if ($$self{'features'}{'quotedkeys'})
227 0 1 unless my $fh = 'IO::File'->new($file)
232 0 1 ref $file ? :
233 0 1 unless $fh->close
240 0 8 if $$self{'debug'}
244 4 4 if ($$self{'features'}{'quotedkeys'})
258 0 130 if $$self{'debug'}
262 76 54 if ($$self{'features'}{'quotedkeys'})
266 0 130 if (ref $value eq 'ARRAY')
271 0 130 if $3 and $$self{'debug'}
272 6 124 if $3
274 0 8 if $$self{'debug'}
277 0 8 if (ref $value ne 'ARRAY')
287 0 2 if $$self{'debug'}
290 0 2 unless my $fh = 'IO::File'->new($file)
295 0 2 ref $file ? :
296 0 2 unless $fh->close
299 0 2 if (ref $value ne 'ARRAY')
306 0 61 if $$self{'debug'}
309 0 61 if (ref $value ne 'ARRAY')
315 6 55 if $2
321 0 12 if ($#stack != 0)
332 2 0 if (@_) { }
0 0 elsif ($$self{'filename'}) { }
341 0 2 if (ref $file) { }
342 0 0 unless ($file->isa('IO::Handle'))
347 0 2 unless $fh = 'IO::File'->new(">$file")
368 29 50 if ($ref) { }
369 17 12 if ($ref eq 'HASH') { }
12 0 elsif ($ref eq 'ARRAY') { }
417 4 46 if ($value =~ /\n/) { }
5 41 elsif ($value =~ /^\s+/ or $value =~ /\s+$/) { }
418 0 4 unless $value =~ /\n$/
436 33 19 if ($$self{'features'}{'quotedkeys'}) { }
437 23 10 if ($key =~ /^((?:\w|-|\.)+)$/) { }
456 4 2 if (not ref $value or ref $value ne 'HASH')
472 0 124 if $$self{'debug'}
474 126 249 if m[^/$]
475 0 249 if $$self{'debug'}
482 123 124 defined $context ? :
484 49 198 if ($fragment =~ /^\[(\d+)\]$/) { }
105 93 elsif ($$self{'features'}{'quotedkeys'}) { }
486 2 47 if (ref $entry ne 'ARRAY')
487 0 2 if (@_)
492 2 45 if ($#{$entry;} < $index)
493 0 2 if (@_)
501 0 105 if $$self{'debug'}
502 0 105 if (ref $entry ne 'HASH')
503 0 0 if (@_)
508 4 101 unless (exists $$entry{$fragment})
509 4 0 if (@_)
516 0 93 if $$self{'debug'}
517 93 0 if ($fragment =~ /((?:\w|-|\.)+)/) { }
518 0 93 if (ref $entry ne 'HASH')
519 0 0 if (@_)
524 4 89 unless (exists $$entry{$fragment})
525 4 0 if (@_)
547 0 6 if $$self{'debug'}
549 2 8 if m[^/$]
550 0 8 if $$self{'debug'}
558 2 6 defined $context ? :
560 2 6 if ($fragment =~ /^\[(\d+)\]$/) { }
3 3 elsif ($$self{'features'}{'quotedkeys'}) { }
562 0 2 if (ref $entry ne 'ARRAY')
565 0 2 if (@key) { }
566 0 0 if (exists $$entry[$index]) { }
569 0 0 if ($key[0] =~ /^\[(\d+)\]$/) { }
581 0 3 if $$self{'debug'}
582 0 3 if (ref $entry ne 'HASH')
585 1 2 if (@key) { }
586 1 0 if (exists $$entry{$fragment}) { }
589 0 0 if ($key[0] =~ /^\[(\d+)\]$/) { }
600 0 3 if $$self{'debug'}
601 3 0 if ($fragment =~ /((?:\w|-|\.)+)/) { }
602 0 3 if (ref $entry ne 'HASH')
605 1 2 if (@key) { }
606 1 0 if (exists $$entry{$fragment}) { }
609 0 0 if ($key[0] =~ /^\[(\d+)\]$/) { }