Branch Coverage

blib/lib/Attribute/Handlers.pm
Criterion Covered Total %
branch 65 102 63.7


line true false branch
14 1 73 if $symcache{join $;, $pkg, $ref}
19 6 5357 if (ref $sym and $sym == $ref)
23 11 5346 unless ref \$sym eq 'GLOB'
25 33 5313 if *{$sym;}{$type} and *{$sym;}{$type} == $ref
60 0 5 unless $class eq 'Attribute::Handlers'
63 1 0 if ($cmd =~ /^autotie((?:ref)?)$/) { }
64 0 1 $1 ? :
66 0 1 unless ref $mapping eq 'HASH'
70 0 3 unless $attr =~ /$qual_id/ and $tieclass =~ /$qual_id/ and eval "use base q\000$tieclass\000; 1"
73 0 3 if ($tieclass->isa('Exporter'))
78 1 2 unless $attr =~ /::/
79 0 3 unless eval qq[\n\t sub $attr : ATTR(VAR) {\n\t\t\tmy (\$ref, \$data) = \@_[2,4];\n\t\t\tmy \$was_arrayref = ref \$data eq 'ARRAY';\n\t\t\t\$data = [ \$data ] unless \$was_arrayref;\n\t\t\tmy \$type = ref(\$ref)||"value (".(\$ref||"").")";\n\t\t\t (\$type eq 'SCALAR')? tie \$\$ref,'${tieclass}',$tiedata\n\t\t\t:(\$type eq 'ARRAY') ? tie \@\$ref,'${tieclass}',$tiedata\n\t\t\t:(\$type eq 'HASH') ? tie %\$ref,'${tieclass}',$tiedata\n\t\t\t: die "Can't autotie a \$type\n"\n\t } 1\n\t ]
0 1 unless $was_arrayref
1 0 $type eq 'HASH' ? :
0 1 $type eq 'ARRAY' ? :
0 1 $type eq 'SCALAR' ? :
0 1 unless $was_arrayref
0 0 $type eq 'HASH' ? :
1 0 $type eq 'ARRAY' ? :
0 1 $type eq 'SCALAR' ? :
1 0 unless $was_arrayref
0 0 $type eq 'HASH' ? :
0 0 $type eq 'ARRAY' ? :
1 0 $type eq 'SCALAR' ? :
122 0 21 unless $lastattr{'ref'}
123 0 21 unless my $sym = findsym(@lastattr{'pkg', 'ref'})
126 0 21 if $^W and not $name =~ /[A-Z]/
136 0 0 if $Attribute::Handlers::AUTOLOAD =~ /::DESTROY$/
138 0 0 unless $Attribute::Handlers::AUTOLOAD =~ /_ATTR_(.*?)_(.*)/
147 0 76 if &_delayed_name_resolution()
151 0 77 unless my($attr, $data) = /^([a-z_]\w*)(?:[(](.*)[)])?$/is
152 21 56 if ($attr eq 'ATTR') { }
156 2 19 if $data =~ s/\s*,?\s*(BEGIN)\s*,?\s*//
158 1 20 if $data =~ s/\s*,?\s*(INIT)\s*,?\s*//
160 1 20 if $data =~ s/\s*,?\s*(END)\s*,?\s*//
164 16 5 if $data =~ s/\s*,?\s*(CHECK)\s*,?\s*// or not keys %{$phase{$ref};}
166 0 21 if keys %lastattr
170 0 21 unless $validtype{$data}
172 21 0 unless &_delayed_name_resolution()
177 2 54 unless $handler
182 124 92 if $global_phases{$gphase} <= $global_phase
184 35 19 if ($global_phase != 0) { }
191 1 34 if $phase{$handler}{'END'}
199 2 74 if defined $_
214 128 53 unless $handlerphase->{$phase}
219 0 34 $type eq 'CODE' ? :
221 45 8 if (not $raw and defined $data)
222 45 0 if ($data ne '') { }
225 43 2 unless $@
230 19 34 ref $sym eq 'GLOB' ? :
244 0 4 if &_delayed_name_resolution()