Condition Coverage

lib/Badger/Exporter.pm
Criterion Covered Total %
condition 36 59 61.0


and 3 conditions

line !l l&&!r l&&r condition
79 16 0 680 @_ == 1 && ref $_[0] eq 'HASH'
120 3 0 284 @_ == 1 && ref $_[0] eq 'HASH'
127 350 146 4 ref $_ and ref $_ eq "HASH"
160 1 0 505 @_ == 1 && ref $_[0] eq 'HASH'
260 10952 8329 14063 $can_hook and $hook = $hooks->{$symbol}
341 16706 0 0 $DEBUG and $type eq "="
528 0 0 467 $nargs and $nargs > 0

or 2 conditions

line l !l condition
437 5 5541 $any{$_} or $hooks{$_} ||= $symbols->{$_}

or 3 conditions

line l !l&&r !l&&!r condition
84 1188 0 0 $Badger::Exporter::HANDLERS->{$key} || croak("Invalid exports key: $key\n")
144 8 0 2694 ref $_ || /^(:|=)/
168 0 166 0 ref $self || $self
343 5 0 16701 $source =~ /::/ or $type eq "="
360 28077 5100 633 @$imports or $count
33177 0 633 @$imports or $count or $added_all
383 5549 1101 0 ${$class . "::" . "EXPORTABLES";} ||= do { my($pkg, $symbols, %done, @all, %any, %tags, %hooks, @fails, @before, @after); my(@pending) = $class; while ($pkg = shift @pending) { next if $done{$pkg}++; if ($symbols = ${$pkg . "::" . "EXPORT_ANY";}) { $symbols = [split(/(?:,\s*)|\s+/, $symbols, 0)] unless ref $symbols eq "ARRAY"; $any{$_} ||= $pkg foreach (@$symbols); } ; if ($symbols = ${$pkg . "::" . "EXPORT_ALL";}) { $symbols = [split(/(?:,\s*)|\s+/, $symbols, 0)] unless ref $symbols eq "ARRAY"; push @all, map({$any{$_} ||= $pkg; $_;} @$symbols); } ; if ($symbols = ${$pkg . "::" . "EXPORT_TAGS";}) { $tags{$_} ||= $symbols->{$_} foreach (keys %$symbols); } ; if ($symbols = ${$pkg . "::" . "EXPORT_HOOKS";}) { ($any{$_} or $hooks{$_} ||= $symbols->{$_}) foreach (keys %$symbols); } ; if ($symbols = ${$pkg . "::" . "EXPORT_FAIL";}) { push @fails, $symbols; } ; if ($symbols = ${$pkg . "::" . "EXPORT_BEFORE";}) { unshift @before, ref $symbols eq "CODE" ? $symbols : (ref $symbols eq "ARRAY" ? @$symbols : croak(sprintf("Invalid export %s handler specified: %s", "before", $symbols))); } ; if ($symbols = ${$pkg . "::" . "EXPORT_AFTER";}) { unshift @after, ref $symbols eq "CODE" ? $symbols : (ref $symbols eq "ARRAY" ? @$symbols : croak(sprintf("Invalid export %s handler specified: %s", "after", $symbols))); } ; push @pending, @{$pkg . "::" . "ISA";}; } ; [\@all, \%any, \%tags, \%hooks, \@fails, \@before, \@after] }
412 126 7878 0 $any{$_} ||= $pkg
422 2 852 0 $any{$_} ||= $pkg
430 0 654 0 $tags{$_} ||= $symbols->{$_}
437 0 5541 0 $hooks{$_} ||= $symbols->{$_}
493 0 1761 0 ref $self || $self