Branch Coverage

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


line true false branch
48 1 0 if ($Readonly::XSokay) { }
49 0 1 if &is_sv_readonly($r_var)
52 0 0 unless tied($r_var) =~ /Readonly::Scalar/
65 3 4 unless tied(@$r_var) =~ /Readonly::Array/
77 0 11 if ($_reftype eq 'SCALAR') { }
1 10 elsif ($_reftype eq 'ARRAY') { }
0 10 elsif ($_reftype eq 'HASH') { }
89 2 2 unless tied(%$r_var) =~ /Readonly::Hash/
101 0 2 if ($_reftype eq 'SCALAR') { }
1 1 elsif ($_reftype eq 'ARRAY') { }
0 1 elsif ($_reftype eq 'HASH') { }
124 0 0 if $cloning
130 1 4 unless $whence and $whence =~ /^Readonly::(?:Scalar1?|Readonly)$/
133 0 4 unless @_
134 0 4 unless @_ == 1
146 0 0 if caller() ne 'Readonly'
155 3 0 if $cloning
161 1 26 unless $whence =~ /^Readonly::Array1?$/
179 14 0 if $] >= 5.006
192 1 4 if caller() ne 'Readonly'
201 2 0 if $cloning
207 1 22 unless $whence =~ /^Readonly::Hash1?$/
211 0 22 unless @_ % 2 == 0
241 1 2 if caller() ne 'Readonly'
263 5 72 if $type =~ s/^Readonly:://
269 1 2 if &is_sv_readonly($_[0])
271 0 2 if $badtype
274 2 0 if ($Readonly::XSokay)
282 0 0 if ($@)
283 0 0 if substr($@, 0, 43) eq $Readonly::MODIFY
292 0 2 if $badtype
300 0 1 if $badtype
304 0 1 if (@_ == 1 and ref $_[0] eq 'HASH')
309 0 1 unless @_ % 2 == 0
315 2 12 if &is_sv_readonly($_[0])
317 0 12 if $badtype
322 1 11 if (ref $_ eq 'SCALAR') { }
1 10 elsif (ref $_ eq 'ARRAY') { }
0 10 elsif (ref $_ eq 'HASH') { }
328 12 0 if ($Readonly::XSokay)
336 0 0 if ($@)
337 0 0 if substr($@, 0, 43) eq $Readonly::MODIFY
346 2 24 if $badtype
352 1 65 if (ref $_ eq 'SCALAR') { }
1 64 elsif (ref $_ eq 'ARRAY') { }
3 61 elsif (ref $_ eq 'HASH') { }
364 2 23 if $badtype
369 9 14 if (@_ == 1 and ref $_[0] eq 'HASH')
374 2 21 unless @values % 2 == 0
378 1 73 if (ref $_ eq 'SCALAR') { }
3 70 elsif (ref $_ eq 'ARRAY') { }
1 69 elsif (ref $_ eq 'HASH') { }
389 1 4 if ($reftype eq 'SCALAR') { }
2 2 elsif ($reftype eq 'ARRAY') { }
2 0 elsif ($reftype eq 'HASH') { }
403 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]) { }