Branch Coverage

blib/lib/Importer.pm
Criterion Covered Total %
branch 154 176 87.5


line true false branch
28 0 1 if @_ and $NUMERIC{substr $_[0], 0, 1}
31 0 1 unless $INC{$file}
33 0 1 if optimal_import($from, $caller[0], \@caller, @_)
62 4 12 if @_ and $NUMERIC{substr $_[0], 0, 1}
64 2 13 unless @_
69 6 8 unless $INC{$file}
71 2 12 if optimal_import($from, $caller[0], \@caller, @args)
99 0 3 if (ref $into) { }
1 2 elsif ($into =~ /^\d+$/) { }
112 0 2 unless $INC{$file}
114 2 0 if optimal_import($from, $into, \@caller, @args)
129 2 2 if ($from =~ /^\d+$/) { }
157 1 49 unless $params{'from'}
174 1 1 ref $proto ? :
188 1 1 ref $proto ? :
202 1 2 ref $proto ? :
223 1 17 if @$versions
225 0 18 unless @$import
227 9 9 if $self->menu($into)->{'fail'}
235 2 9 unless my $imported = $IMPORTED{$from}
239 5 4 @_ ? :
246 2 16 unless $allowed{$name}
252 62 18 unless defined *{$glob;}{$type}
273 1 2 if $INC{$from_file}
282 43 14 if $self->{'caller'}
286 14 13 if @caller and not $caller[0]->isa('Importer')
287 0 13 unless @caller
316 1 135 unless $into
320 3 132 if $for and $for ne $into
328 1 33 unless $into
333 9 24 if (my $menu_sub = *{"${from}::IMPORTER_MENU";}{'CODE'}) { }
347 1 5 if $got{'export_gen'} and $got{'generate'}
393 7 0 if not $sig or $sig eq '&'
395 1 6 unless $do
398 7 25 if $export_gen and keys %$export_gen
407 244 29 if $sig eq '&'
409 7 266 if $$export_gen{"$sig$name"}
410 7 230 if $sig eq '&' and $export_gen->{$name}
411 0 259 if $got->{'generate'} and &$generate("$sig$name")
434 1 1 unless $new_style or keys %$exports or $from->isa('Exporter') or $INC{'Exporter.pm'} and $f_import and $f_import == \&Exporter::import
447 18 13 @$export_fail ? :
449 21 3 $sig eq '&' ? :
493 10 178 if ref $arg eq 'CODE'
494 3 175 if $NUMERIC{substr $arg, 0, 1}
498 0 47 if @sets > 1
502 6 25 unless $is_tag or @$args or @versions
512 5 169 if ($lead eq '!') { }
515 1 4 if ($arg eq '!') { }
526 2 0 unless @import or keys %exclude or @versions
534 8 161 ref $args->[0] eq 'HASH' ? :
537 17 157 if ($lead eq ':')
539 1 16 unless my $tag = $menu->{'tags'}{$arg}
543 0 16 if @$cvers
546 0 16 if $cset
552 1 15 if ($exc) { }
3 12 elsif ($spec and keys %$spec) { }
553 2 0 if not ref $_
557 1 2 if $spec->{'-as'} and @$cimp > 1
565 1 4 if $spec->{'-prefix'} and $cspec->{'-prefix'}
566 1 2 if $spec->{'-postfix'} and $cspec->{'-postfix'}
584 1 156 if (ref $arg eq 'Regexp') { }
2 154 elsif ($lead eq '/' and $arg =~ m[^/(.*)/$]) { }
596 42 121 /^\W/ ? :
598 4 153 if ($exc) { }
603 1 152 if $spec->{'-as'} and @list > 1
620 9 3 unless my(@fail) = map({my $x = $_->[0]; $x =~ s/^&//; $x;} grep($menu->{'fail'}{$_->[0]}, @$import))
622 3 0 $from->can('export_fail') ? :
624 1 2 if (@real_fail)
643 7 0 if defined $caller->[9]
5 0 if defined $caller->[9]
655 0 128 unless my($sig, $name) = $symbol =~ /^(\W)(.*)$/
659 15 113 if $menu->{'generate'}
664 1 127 unless $ref or $menu->{'lookup'}{"$sig$name"}
665 0 127 unless $ref
668 1 126 if $type eq 'REF'
670 1 126 if $ref and $type ne $SIG_TO_SLOT{$sig}
675 3 123 if $$exclude{"$sig$name"} and not $spec->{'-as'}
683 14 109 if $custom_set
686 102 7 if $sig eq '&'
690 102 7 if $sig eq '&'
691 1 108 if $magic
704 3 6 unless eval qq[#line $caller->[2] "$caller->[1]"\n\$mod->VERSION(\$_) for \@versions;\n1;\n]
721 2 7 unless eval qq[#line $caller->[2] "$caller->[1]"\nrequire \$file;\n]
742 6 9 unless @args
746 5 120 substr($_, 0, 1) eq '&' ? :
757 46 3 !ref($_) && ($allowed{$_} || substr($_, 0, 1, '') eq '&' && $allowed{$_}) ? :
761 0 7 unless eval qq[# If the caller has redefine warnings enabled then we want to warn them if\n# their import redefines things.\nBEGIN { \${^WARNING_BITS} = \$caller->[9] if defined \$caller->[9] };\n#line $caller->[2] "$caller->[1]"\n(*{"$into\\::\$_"} = \$final{\$_}, push \@{\$Importer::IMPORTED{\$into}} => \$_) for keys %final;\n1;\n]
2 0 if defined $caller->[9]