| line |
true |
false |
branch |
|
193
|
1 |
22 |
unless @_ < 3 |
|
198
|
1 |
21 |
unless defined $conf and ref $conf eq 'HASH' |
|
201
|
1 |
20 |
if $$conf{'filename'} and ref \$$conf{'filename'} ne 'SCALAR' |
|
241
|
8 |
12 |
if (defined $$conf{'path'}) |
|
242
|
3 |
5 |
if (ref $$conf{'path'} eq 'ARRAY') { } |
|
|
4 |
1 |
elsif (ref \$$conf{'path'} eq 'SCALAR') { } |
|
244
|
2 |
1 |
if grep {not -e $_;} @{$$conf{'path'};} |
|
248
|
1 |
3 |
unless -e $$conf{'path'} |
|
262
|
1 |
15 |
if $$conf{'filename'} and $#{$$self{'path'};} == -1 |
|
266
|
1 |
14 |
if $$conf{'delimiter'} and ref $$conf{'delimiter'} ne 'HASH' |
|
269
|
2 |
66 |
if (defined $$conf{'delimiter'}{$key}) |
|
273
|
2 |
0 |
unless ref $$conf{'delimiter'}{$key} eq 'ARRAY' and scalar @{$$conf{'delimiter'}{$key};} == 2 |
|
283
|
48 |
12 |
$$self{'is_block'}{$key} ? : |
|
|
48 |
12 |
$$self{'is_block'}{$key} ? : |
|
296
|
4 |
8 |
if ($$conf{'filter'}) |
|
297
|
1 |
3 |
unless ref $$conf{'filter'} eq 'HASH' |
|
300
|
0 |
2 |
if (ref $$conf{'filter'}{$key} eq 'CODE') { } |
|
|
1 |
1 |
elsif (ref \$$conf{'filter'}{$key} eq 'SCALAR') { } |
|
304
|
1 |
0 |
unless $$self{'filter'}{$key} = $$self{'filter'}{$$conf{'filter'}{$key}} |
|
318
|
0 |
9 |
if $$self{'filename'} |
|
426
|
0 |
18 |
if ($skip) { } |
|
|
7 |
11 |
elsif (ref $part eq 'HASH') { } |
|
427
|
0 |
0 |
if ref $part eq 'HASH' and $$part{'test'} and $$part{'test'} eq "/$skip" |
|
431
|
2 |
5 |
if (my $subsec_name = $$part{'sec'}) { } |
|
|
0 |
5 |
elsif ($$part{'test'}) { } |
|
434
|
0 |
2 |
unless $subsec_data_ref |
|
435
|
0 |
2 |
unless ref $subsec_data_ref eq 'HASH' or ref $subsec_data_ref eq 'ARRAY' |
|
441
|
1 |
1 |
ref $subsec_data_ref eq 'HASH' ? : |
|
454
|
0 |
0 |
if $$part{'test'} =~ m[^/] |
|
456
|
0 |
0 |
if ($test =~ s/^!//) { } |
|
457
|
0 |
0 |
_access_data($test, @data_refs) ? : |
|
461
|
0 |
0 |
_access_data($test, @data_refs) ? : |
|
548
|
1 |
108 |
if ($slice =~ /$regexp_comment/) { } |
|
|
0 |
108 |
elsif ($slice =~ /$$self{'regexp'}{'test'}/) { } |
|
|
25 |
83 |
elsif ($slice =~ /$$self{'regexp'}{'section'}/) { } |
|
|
33 |
50 |
elsif ($slice =~ /$$self{'regexp'}{'var'}/) { } |
|
556
|
12 |
13 |
if ($subsec_name =~ m[^/(.+)$]) |
|
557
|
0 |
12 |
unless $1 eq $sec_name |
|
563
|
11 |
2 |
unless ($$sec_ref{'children'}{$subsec_name}) |
|
567
|
1 |
12 |
if (ref $subsec_array_ref ne 'ARRAY') |
|
585
|
1 |
32 |
if ref $$sec_ref{'children'}{$var} eq 'ARRAY' |
|
609
|
1 |
26 |
unless defined $str |
|
611
|
1 |
25 |
unless ref \$str eq 'SCALAR' |
|
633
|
77 |
36 |
if ($start > $last_pos) |
|
638
|
2 |
111 |
if $slice =~ /$dbldelim/ |
|
645
|
14 |
9 |
if (length $str > $last_pos) |
|
672
|
3 |
0 |
if -e $canon_file_path |
|
675
|
0 |
3 |
unless $canon_file_path |
|
681
|
0 |
3 |
if grep {$canon_file_path eq $_;} @ancestors |
|
683
|
0 |
3 |
unless open my $fd, "<:encoding($$self{'encoding'})", $canon_file_path |
|
689
|
0 |
3 |
unless defined($str = <$fd>) |
|
730
|
0 |
10 |
unless ref $tmpl_ref eq 'HASH' |
|
733
|
0 |
10 |
unless ref \$access_str eq 'SCALAR' |
|
737
|
0 |
10 |
unless $access_str |
|
744
|
0 |
16 |
unless $result |
|
745
|
10 |
6 |
if (ref $result eq 'HASH') { } |
|
|
5 |
1 |
elsif (ref $result eq 'ARRAY') { } |
|
749
|
2 |
3 |
$part =~ /^\d+$/ ? : |
|
784
|
0 |
5 |
unless scalar @data_refs |
|
786
|
0 |
5 |
$access_str =~ s[^/][] ? : |
|
791
|
0 |
5 |
unless scalar @parts |
|
794
|
0 |
5 |
if $part eq '.' |
|
795
|
0 |
5 |
if ($part eq '..') { } |
|
|
0 |
5 |
elsif (ref $data eq 'ARRAY') { } |
|
|
5 |
0 |
elsif (ref $data eq 'HASH') { } |
|
799
|
0 |
0 |
$part =~ /^\d+$/ ? : |
|
823
|
0 |
4 |
unless defined $_ |
|
825
|
0 |
4 |
unless length $_ |
|
836
|
0 |
0 |
unless defined $_ |
|
838
|
0 |
0 |
unless length $_ |
|
852
|
0 |
3 |
unless length $str |
|
858
|
3 |
0 |
if ($] >= 5.008002) { } |
|
859
|
0 |
3 |
if utf8::is_utf8($str) |
|
868
|
0 |
0 |
if /[^A-Za-z0-9\-_.!~*'()]/ |
|
881
|
0 |
3 |
unless length $str |
|
887
|
3 |
0 |
if ($] >= 5.008002) { } |
|
888
|
0 |
3 |
if utf8::is_utf8($str) |
|
897
|
0 |
0 |
if m[[^;/?:\@&=+\$,A-Za-z0-9\-_.!~*'()]] |