diff options
Diffstat (limited to 'lib/Exporter/Heavy.pm')
-rw-r--r-- | lib/Exporter/Heavy.pm | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/lib/Exporter/Heavy.pm b/lib/Exporter/Heavy.pm index 76a5bad17c..b3afe9cbc3 100644 --- a/lib/Exporter/Heavy.pm +++ b/lib/Exporter/Heavy.pm @@ -109,6 +109,7 @@ sub heavy_export { @imports = keys %imports; } + my @carp; foreach $sym (@imports) { if (!$export_cache->{$sym}) { if ($sym =~ m/^\d/) { @@ -126,20 +127,16 @@ sub heavy_export { last; } } elsif ($sym !~ s/^&// || !$export_cache->{$sym}) { - unless ($^S) { - # If we are trying to trap import of non-existent - # symbols using eval, let's be silent for now and - # just croak in the end. - require Carp; - Carp::carp(qq["$sym" is not exported by the $pkg module]); - } + # accumulate the non-exports + push @carp, + qq["$sym" is not exported by the $pkg module\n]; $oops++; } } } if ($oops) { require Carp; - Carp::croak("Can't continue after import errors"); + Carp::croak("@{carp}Can't continue after import errors"); } } else { |