Condition Coverage

blib/lib/Exporter/Extensible.pm
Criterion Covered Total %
condition 108 213 50.7


and 2 conditions

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

and 3 conditions

line !l l&&!r l&&r condition
182 13 10 10 defined $self2->{'not'} and $self2->_exporter_is_excluded($symbol)
199 0 0 0 ref $ref eq 'REF' and $sigil eq '$'
210 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
248 0 0 77 @_ == 1 && ref $_[0] eq 'ARRAY'
254 43 3 19 defined $stash->{$name} and $replace ne 1
259 13 1 4 *$pkg_dest{ref $ref} && *$pkg_dest{ref $ref} != $ref
276 0 0 7 @_ == 1 && ref $_[0] eq 'ARRAY'
303 0 0 3 @_ == 1 && ref $_[0] eq 'ARRAY'
311 5 0 0 defined $into->{$name} and $into->{'name'} != $ref
364 0 0 0 substr($k, 0, 1) eq '-' and $self->can('exporter_config_' . substr($k, 1))
376 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
492 3 22 0 @$add && !defined($add->[0])
496 3 15 22 ref $add->[$_] || !$seen{$add->[$_]}++ || ref $$add[$_ + 1] and push @keep, $add->[$_]
516 0 0 20 ref $self and my $not = $self->{'not'}
541 0 0 3 ref $self and $self->{'todo'}
569 0 0 16 $cv->isa('B::CV') and not $cv->GV->isa('B::SPECIAL')
0 0 16 $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
688 0 0 0 ref $ref eq 'REF' and $sigil eq '$'
695 1 0 0 $is_gen and not $ref
707 0 0 0 ref $ref eq 'SCALAR' and $class->can($ref = $$ref)

or 2 conditions

line l !l condition
68 15 53 $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 86 $self->{'install_set'} ||= {}
123 61 26 $EXPORT_PKG_CACHE{ref $self} ||= {}
246 8 69 $self->{'replace'} || 'warn'
283 1 0 $stash->{$name} || ''
289 8 0 *{$pkg_dest;}{ref $ref} || 0
302 0 3 $self->{'replace'} || 'warn'
445 5 2 $arg_count || 0
643 0 5 $tags->{'default'} ||= \@{$self->{'into'} . '::EXPORT';}

or 3 conditions

line l !l&&r !l&&!r condition
67 17 8 68 $self->{'_complex'} or grep ref($_), @todo
81 1 4 0 ord $_ == $colon or *{$prefix . $_;} = $fastsub->{$_} || (last fast)
94 0 86 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'
183 6 17 0 delete $self2->{'as'} || ($self2->{'prefix'} || '') . $name . ($self2->{'suffix'} || '')
185 7 1 15 defined $self2->{'prefix'} or defined $self2->{'suffix'}
8 10 5 defined $self2->{'prefix'} or defined $self2->{'suffix'} or defined $self2->{'not'}
190 0 6 0 $self2->{'_generator_cache'}{$symbol . ';' . $name} ||= do { my $method = $$ref; $method = $$method unless ref $method eq 'CODE'; $self2->$method($symbol, $self2->{'generator_arg'}) }
199 6 0 0 ref $ref eq $sigil_to_reftype{$sigil} or ref $ref eq 'REF' and $sigil eq '$'
206 0 0 0 ref $ref eq 'GLOB' or ref $install->{$name} eq 'GLOB'
216 0 0 0 $install->{$name}{ref $ref} ||= $ref
338 7 3 53 defined $self->{'not'} || defined $self->{'as'} || defined $self->{'prefix'} && length $self->{'prefix'} || defined $self->{'suffix'} && length $self->{'suffix'}
343 0 3 42 $self->{'no'} || $self->{'_name_mangle'} || defined $self->{'scope'} || $self->{'installer'} || ref $self->{'into'}
356 11 0 0 $_[0]{'replace'} = $replace_aliases{$_[1]} or &$croak("Invalid 'replace' value: '$_[1]'")
364 76 0 0 my $setter = $self->can('exporter_config_' . $k) or substr($k, 0, 1) eq '-' and $self->can('exporter_config_' . substr($k, 1))
410 0 4 0 ref $class || $class
411 4 0 0 $ref ||= $class->_exporter_get_ref_to_package_var($export_name)
423 58 0 0 ref $self || $self
426 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)
444 0 7 0 ref $class || $class
450 0 7 0 ref $class || $class
452 0 0 0 ${$class . '::EXPORT_TAGS';}{substr $export_name, 1} ||= $method_name
462 0 7 0 ref $class || $class
468 20 6 0 ref $self || $self
477 16 9 27 do { $_ . '::EXPORT_TAGS' }->{$tagname} || $tagname eq 'all' && defined *{$_ . '::EXPORT';}{'HASH'} && [grep((!$ord_is_directive{ord $_}), keys %{$_ . '::EXPORT';})]
496 37 0 3 ref $add->[$_] || !$seen{$add->[$_]}++ || ref $$add[$_ + 1]
506 30 6 0 ref $self || $self
510 10 0 26 $list or exists $EXPORT_TAGS_PKG_CACHE{$class}{$tagname}
602 0 3 0 $subname ||= _exporter_get_coderef_name($coderef)
607 0 7 0 $subname ||= _exporter_get_coderef_name($coderef)
666 1 9 0 $ref ||= $class->can($export)
671 0 4 0 $ref ||= $class->_exporter_get_ref_to_package_var($sigil, $name)
688 4 0 0 ref $ref eq $sigil_to_reftype{$sigil} or ref $ref eq 'REF' and $sigil eq '$'
707 0 0 0 ref $ref eq 'CODE' or ref $ref eq 'SCALAR' and $class->can($ref = $$ref)