From: Jarkko Hietaniemi Date: Sun, 9 Dec 2001 18:21:46 +0000 (+0000) Subject: Instead of muting symbol export error if under eval, X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=ddc53c8b92d8feb3e2103b02f41617a2abf20574;p=p5sagit%2Fp5-mst-13.2.git Instead of muting symbol export error if under eval, delay the errors until the croak(). (replaces #13408) p4raw-id: //depot/perl@13556 --- diff --git a/lib/Exporter/Heavy.pm b/lib/Exporter/Heavy.pm index 76a5bad..b3afe9c 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 {