From: Nicholas Clark Date: Tue, 18 Dec 2001 00:22:03 +0000 (+0000) Subject: slightly more for Exporter.pm X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=fa1bb02feecc6f4fdaff36b2895f96803af07c6a;p=p5sagit%2Fp5-mst-13.2.git slightly more for Exporter.pm Message-ID: <20011218002203.M21702@plum.flirble.org> p4raw-id: //depot/perl@13748 --- diff --git a/lib/Exporter.pm b/lib/Exporter.pm index daa78d5..bd55160 100644 --- a/lib/Exporter.pm +++ b/lib/Exporter.pm @@ -47,14 +47,15 @@ sub import { s/^&//, $export_cache->{$_} = 1 foreach (@$exports, @{"$pkg\::EXPORT_OK"}); } - my $heavy = $Verbose || $Debug; - unless ($heavy) { - # Try very hard not to use {} and hence have to enter scope on the foreach - # We bomb out of the loop with last as soon as heavy is set. + my $heavy; + # Try very hard not to use {} and hence have to enter scope on the foreach + # We bomb out of the loop with last as soon as heavy is set. + if ($args or $fail) { ($heavy = (/\W/ or $args and not exists $export_cache->{$_} - or @$fail and $_ eq $fail->[0] - or (@{"$pkg\::EXPORT_OK"} and $_ eq ${"$pkg\::EXPORT_OK"}[0]))) - and last + or @$fail and $_ eq $fail->[0])) and last + foreach (@_); + } else { + ($heavy = /\W/) and last foreach (@_); } return export $pkg, $callpkg, ($args ? @_ : ()) if $heavy;