Branch Coverage

blib/lib/Template/Replace.pm
Criterion Covered Total %
branch 102 156 65.3


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\-_.!~*'()]]