Branch Coverage

blib/lib/Readonly.pm
Criterion Covered Total %
branch 88 132 66.6


line true false branch
44 1 0 if ($Readonly::XSokay) { }
45 0 1 if &is_sv_readonly($r_var)
48 0 0 unless tied($r_var) =~ /Readonly::Scalar/
61 3 4 unless tied(@$r_var) =~ /Readonly::Array/
73 0 11 if ($_reftype eq 'SCALAR') { }
1 10 elsif ($_reftype eq 'ARRAY') { }
0 10 elsif ($_reftype eq 'HASH') { }
85 2 2 unless tied(%$r_var) =~ /Readonly::Hash/
97 0 2 if ($_reftype eq 'SCALAR') { }
1 1 elsif ($_reftype eq 'ARRAY') { }
0 1 elsif ($_reftype eq 'HASH') { }
120 0 0 if $cloning
126 1 4 unless $whence and $whence =~ /^Readonly::(?:Scalar1?|Readonly)$/
129 0 4 unless @_
130 0 4 unless @_ == 1
141 0 0 if caller() ne 'Readonly'
150 3 0 if $cloning
156 1 26 unless $whence =~ /^Readonly::Array1?$/
174 14 0 if $] >= 5.006
185 1 4 if caller() ne 'Readonly'
194 2 0 if $cloning
200 1 22 unless $whence =~ /^Readonly::Hash1?$/
204 0 22 unless @_ % 2 == 0
232 1 2 if caller() ne 'Readonly'
254 5 72 if $type =~ s/^Readonly:://
260 1 2 if &is_sv_readonly($_[0])
262 0 2 if $badtype
265 2 0 if ($Readonly::XSokay)
273 0 0 if ($@)
274 0 0 if substr($@, 0, 43) eq $Readonly::MODIFY
283 0 2 if $badtype
291 0 1 if $badtype
295 0 1 if (@_ == 1 and ref $_[0] eq 'HASH')
300 0 1 unless @_ % 2 == 0
306 2 12 if &is_sv_readonly($_[0])
308 0 12 if $badtype
313 1 11 if (ref $_ eq 'SCALAR') { }
1 10 elsif (ref $_ eq 'ARRAY') { }
0 10 elsif (ref $_ eq 'HASH') { }
319 12 0 if ($Readonly::XSokay)
327 0 0 if ($@)
328 0 0 if substr($@, 0, 43) eq $Readonly::MODIFY
337 2 24 if $badtype
343 1 65 if (ref $_ eq 'SCALAR') { }
1 64 elsif (ref $_ eq 'ARRAY') { }
3 61 elsif (ref $_ eq 'HASH') { }
355 2 23 if $badtype
360 9 14 if (@_ == 1 and ref $_[0] eq 'HASH')
365 2 21 unless @values % 2 == 0
369 1 73 if (ref $_ eq 'SCALAR') { }
3 70 elsif (ref $_ eq 'ARRAY') { }
1 69 elsif (ref $_ eq 'HASH') { }
380 1 4 if ($reftype eq 'SCALAR') { }
2 2 elsif ($reftype eq 'ARRAY') { }
2 0 elsif ($reftype eq 'HASH') { }
394 0 9 if &is_sv_readonly(${$_[0];})
1 8 if $badtype
0 8 if @_ > 2
4 4 if @_ == 1 and defined ${$_[0];}
0 0 if $@ =~ /^$Readonly::MODIFY at/
0 4 if ($@)
1 8 if @_ % 2 != 0 and not @_ == 1 && ref $_[0] eq 'HASH'
9 15 if (ref $_[0] eq 'SCALAR') { }
6 9 elsif (ref $_[0] eq 'ARRAY') { }
9 0 elsif (ref $_[0] eq 'HASH') { }
0 0 elsif (ref $_[0]) { }