Condition Coverage

blib/lib/Exporter/Extensible.pm
Criterion Covered Total %
condition 111 217 51.1


and 2 conditions

line l !l condition
87 14 3 0 ord $_ == $colon and $self->import(@{$self->exporter_get_tag(substr($_, 1));})
281 8 32 $_ ne ref $ref and *{$old;}{$_}
28 12 $_ ne ref $ref and *{$old;}{$_} and *$pkg_dest = *{$old;}{$_}
548 4 4 &$filter and return 1

and 3 conditions

line !l l&&!r l&&r condition
170 13 10 10 defined $self2->{'not'} and $self2->_exporter_is_excluded($symbol)
187 0 0 0 ref $ref eq 'REF' and $sigil eq '$'
198 0 0 0 ref $ref eq 'GLOB' and ref $install->{'dest'} eq 'GLOB'
0 0 0 ref $ref eq 'GLOB' and ref $install->{'dest'} eq 'GLOB' and *{$install->{$name};} eq *$ref
236 0 0 75 @_ == 1 && ref $_[0] eq 'ARRAY'
242 43 3 19 defined $stash->{$name} and $replace ne 1
247 13 1 4 *$pkg_dest{ref $ref} && *$pkg_dest{ref $ref} != $ref
264 0 0 7 @_ == 1 && ref $_[0] eq 'ARRAY'
291 0 0 3 @_ == 1 && ref $_[0] eq 'ARRAY'
299 5 0 0 defined $into->{$name} and $into->{'name'} != $ref
352 0 0 0 substr($k, 0, 1) eq '-' and $self->can('exporter_config_' . substr($k, 1))
364 2 3 6 @for_global_config == 1 and $for_global_config[0] eq '-as'
5 1 5 @for_global_config == 1 and $for_global_config[0] eq '-as' and keys %$conf == 1
477 11 0 0 ref $method && !$ord_is_sigil{ord $export_name}
513 3 22 0 @$add && !defined($add->[0])
517 3 15 22 ref $add->[$_] || !$seen{$add->[$_]}++ || ref $$add[$_ + 1] and push @keep, $add->[$_]
537 0 0 20 ref $self and my $not = $self->{'not'}
562 0 0 3 ref $self and $self->{'todo'}
590 0 0 14 $cv->isa('B::CV') and not $cv->GV->isa('B::SPECIAL')
0 0 14 $cv->isa('B::CV') and not $cv->GV->isa('B::SPECIAL') and $cv->GV->NAME
0 0 0 $cv->isa('B::CV') and not $cv->GV->isa('B::SPECIAL')
0 0 0 $cv->isa('B::CV') and not $cv->GV->isa('B::SPECIAL') and $cv->GV->NAME
715 0 0 5 ref $ref eq 'REF' and $sigil eq '$'
722 1 0 0 $is_gen and not $ref
734 0 0 0 ref $ref eq 'SCALAR' and $class->can($ref = $$ref)

or 2 conditions

line l !l condition
68 15 51 $EXPORT_FAST_SUB_CACHE{$class} || (last)
70 8 7 $self->{'replace'} || 'carp'
77 10 6 $fastsub->{$_} || (last fast)
2 16 0 ord $_ == $colon or *{$prefix . $_;} = $fastsub->{$_} || (last fast)
81 4 0 $fastsub->{$_} || (last fast)
122 1 84 $self->{'install_set'} ||= {}
123 59 26 $EXPORT_PKG_CACHE{ref $self} ||= {}
234 8 67 $self->{'replace'} || 'warn'
271 1 0 $stash->{$name} || ''
277 8 0 *{$pkg_dest;}{ref $ref} || 0
290 0 3 $self->{'replace'} || 'warn'
664 0 5 $tags->{'default'} ||= \@{$self->{'into'} . '::EXPORT';}

or 3 conditions

line l !l&&r !l&&!r condition
67 17 8 66 $self->{'_complex'} or grep ref($_), @todo
81 1 4 0 ord $_ == $colon or *{$prefix . $_;} = $fastsub->{$_} || (last fast)
94 0 84 0 $self->{'installer'} || ($self->{'no'} ? 'exporter_uninstall' : 'exporter_install')
134 0 1 12 ref $tag_cache->[0] eq 'HASH' or ref $todo->[0] eq 'HASH'
171 6 17 0 delete $self2->{'as'} || ($self2->{'prefix'} || '') . $name . ($self2->{'suffix'} || '')
173 7 1 15 defined $self2->{'prefix'} or defined $self2->{'suffix'}
8 10 5 defined $self2->{'prefix'} or defined $self2->{'suffix'} or defined $self2->{'not'}
177 1 4 72 not ref $ref or ref $ref eq ($sigil ? 'CODE' : 'REF')
178 0 5 0 $self2->{'_generator_cache'}{$symbol . ';' . $name} ||= do { my $method = ref $ref eq 'REF' ? $$ref : $ref; $method = $$method if ref $method eq 'SCALAR'; $self2->$method($symbol, $self2->{'generator_arg'}) }
187 5 0 0 ref $ref eq $sigil_to_reftype{$sigil} or ref $ref eq 'REF' and $sigil eq '$'
194 0 0 0 ref $ref eq 'GLOB' or ref $install->{$name} eq 'GLOB'
204 0 0 0 $install->{$name}{ref $ref} ||= $ref
326 7 3 52 defined $self->{'not'} || defined $self->{'as'} || defined $self->{'prefix'} && length $self->{'prefix'} || defined $self->{'suffix'} && length $self->{'suffix'}
331 0 2 41 $self->{'no'} || $self->{'_name_mangle'} || defined $self->{'scope'} || $self->{'installer'} || ref $self->{'into'}
344 11 0 0 $_[0]{'replace'} = $replace_aliases{$_[1]} or &$croak("Invalid 'replace' value: '$_[1]'")
352 76 0 0 my $setter = $self->can('exporter_config_' . $k) or substr($k, 0, 1) eq '-' and $self->can('exporter_config_' . substr($k, 1))
398 0 4 0 ref $class || $class
399 4 0 0 $ref ||= $class->_exporter_get_ref_to_package_var($export_name)
411 58 0 0 ref $self || $self
414 58 0 0 do { my $x; unless ($x = do { $class . '::EXPORT' }->{$sym}) { $x = do { $_ . '::EXPORT' }->{$sym} and last foreach (@{&mro::get_linear_isa($class);}); } ; $EXPORT_FAST_SUB_CACHE{$class}{$sym} = $x if ref $x eq 'CODE' and not $ord_is_sigil{ord $sym}; $x } || $self->exporter_autoload_symbol($sym)
0 58 0 $EXPORT_PKG_CACHE{$class}{$sym} ||= do { my $x; unless ($x = do { $class . '::EXPORT' }->{$sym}) { $x = do { $_ . '::EXPORT' }->{$sym} and last foreach (@{&mro::get_linear_isa($class);}); } ; $EXPORT_FAST_SUB_CACHE{$class}{$sym} = $x if ref $x eq 'CODE' and not $ord_is_sigil{ord $sym}; $x } || $self->exporter_autoload_symbol($sym)
432 0 2 0 ref $class || $class
466 0 11 0 ref $class || $class
467 11 0 0 not ref $method or ref $method eq 'CODE'
471 0 0 0 ${$class . '::EXPORT_TAGS';}{substr $export_name, 1} ||= $method
483 0 7 0 ref $class || $class
489 20 6 0 ref $self || $self
498 16 9 27 do { $_ . '::EXPORT_TAGS' }->{$tagname} || $tagname eq 'all' && defined *{$_ . '::EXPORT';}{'HASH'} && [grep((!$ord_is_directive{ord $_}), keys %{$_ . '::EXPORT';})]
517 37 0 3 ref $add->[$_] || !$seen{$add->[$_]}++ || ref $$add[$_ + 1]
527 30 6 0 ref $self || $self
531 10 0 26 $list or exists $EXPORT_TAGS_PKG_CACHE{$class}{$tagname}
623 0 1 0 $subname ||= _exporter_get_coderef_name($coderef)
628 0 7 0 $subname ||= _exporter_get_coderef_name($coderef)
714 0 9 0 $ref ||= $class->_exporter_get_ref_to_package_var($sigil, $name)
715 4 5 0 ref $ref eq $sigil_to_reftype{$sigil} or ref $ref eq 'REF' and $sigil eq '$'
734 0 0 0 ref $ref eq 'CODE' or ref $ref eq 'SCALAR' and $class->can($ref = $$ref)