summaryrefslogtreecommitdiff
path: root/lib/Exporter/Heavy.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Exporter/Heavy.pm')
-rw-r--r--lib/Exporter/Heavy.pm13
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 {