| blib/lib/Sub/Defer.pm | |||
|---|---|---|---|
| Criterion | Covered | Total | % |
| condition | 49 | 63 | 77.7 |
| line | l | !l | condition |
|---|---|---|---|
| 151 | 57 | 31 | $target and !1 |
| line | !l | l&&!r | l&&r | condition |
|---|---|---|---|---|
| 23 | 3 | 0 | 1 | eval { do { require Sub::Util } } && defined &Sub::Util::set_subname |
| 2 | 0 | 1 | eval { do { require Sub::Name } } && defined &Sub::Name::subname | |
| 76 | 14 | 0 | 72 | $deferred_sub and $deferred eq $deferred_sub |
| 2 | 0 | 12 | ${$undeferred_ref;} and $deferred eq ${$undeferred_ref;} | |
| 88 | 31 | 2 | 28 | defined $target and $deferred eq *{_getglob($target);}{'CODE'} |
| 111 | 2 | 8 | 52 | $DEFERRED{$_} && $DEFERRED{$_}[0] |
| 122 | 12 | 0 | 6 | $deferred_sub and $deferred eq $deferred_sub |
| 6 | 0 | 6 | ${$undeferred_ref;} and $deferred eq ${$undeferred_ref;} | |
| 130 | 0 | 4 | 8 | $undeferred_ref && $$undeferred_ref |
| 143 | 42 | 46 | 7 | $options and $options->{'attributes'} |
| 191 | 0 | 6 | 86 | $_->[3] && ${$_->[3];} |
| line | l | !l | condition | |
|---|---|---|---|---|
| 88 | 28 | 33 | defined $target and $deferred eq *{_getglob($target);}{'CODE'} or '' | |
| 119 | 24 | 2 | $deferred or '' | |
| 139 | 33 | 3 | 0 | ($package, $subname) = $target =~ /^(.*)::([^:]+)$/ or croak("$target is not a fully qualified sub name!") |
| line | l | !l&&r | !l&&!r | condition |
|---|---|---|---|---|
| 76 | 72 | 12 | 2 | $deferred_sub and $deferred eq $deferred_sub or ${$undeferred_ref;} and $deferred eq ${$undeferred_ref;} |
| 122 | 6 | 12 | 0 | $deferred_sub and $deferred eq $deferred_sub or ${$undeferred_ref;} and $deferred eq ${$undeferred_ref;} |
| 142 | 35 | 27 | 0 | $options && $options->{'package'} || caller |
| 33 | 62 | 0 | $package ||= $options && $options->{'package'} || caller | |
| 146 | 5 | 2 | 0 | /\A\w+(?:\(.*\))?\z/s or croak("invalid attribute $_") |
| 151 | 5 | 10 | 78 | @attributes or $target and !1 |
| 176 | 4 | 33 | 0 | $undeferred ||= undefer_sub($deferred_info->[4]) |