X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FExporter.pm;h=9088a31482555bf407d3d19bad930bbe7c8b5c6d;hb=0d3cd356f86a61e8bd16da8cde1ac079d7e66290;hp=706746431536062afdc0764f412278362a4a88f0;hpb=5fea0f12373ae6f6aa140f470ee71f3ef680c14b;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/Exporter.pm b/lib/Exporter.pm index 7067464..9088a31 100644 --- a/lib/Exporter.pm +++ b/lib/Exporter.pm @@ -8,7 +8,8 @@ no strict 'refs'; our $Debug = 0; our $ExportLevel = 0; our $Verbose ||= 0; -our $VERSION = '5.563'; +our $VERSION = '5.564'; +$Carp::Internal{Exporter} = 1; sub export_to_level { require Exporter::Heavy; @@ -56,7 +57,7 @@ sub import { return export $pkg, $callpkg, ($args ? @_ : ()); } local $SIG{__WARN__} = - sub {require Carp; local $Carp::CarpLevel = 1; &Carp::carp}; + sub {require Carp; &Carp::carp}; foreach my $sym (@_) { # shortcut for the common case of no type character *{"$callpkg\::$sym"} = \&{"$pkg\::$sym"}; @@ -309,16 +310,17 @@ may make this a fatal error. =head2 Ced Constants -Many modules make use of Cing for constant subroutines to avoid -having to compile and waste memory on rarely used values (see L for -details on constant subroutines). Calls to such constant subroutines are not -optimized away at compile time because they can't be checked at compile time -for constancy. +Many modules make use of Cing for constant subroutines to +avoid having to compile and waste memory on rarely used values (see +L for details on constant subroutines). Calls to such +constant subroutines are not optimized away at compile time because +they can't be checked at compile time for constancy. -Even if a prototype is available at compile time, the body of the subroutine is -not (it hasn't been Ced yet). perl needs to examine both the C<()> -prototype and the body of a subroutine at compile time to detect that it can -safely replace calls to that subroutine with the constant value. +Even if a prototype is available at compile time, the body of the +subroutine is not (it hasn't been Ced yet). perl needs to +examine both the C<()> prototype and the body of a subroutine at +compile time to detect that it can safely replace calls to that +subroutine with the constant value. A workaround for this is to call the constants once in a C block: @@ -330,11 +332,11 @@ A workaround for this is to call the constants once in a C block: BEGIN { SO_LINGER } foo( SO_LINGER ); ## SO_LINGER optimized away at compile time. -This forces the C for C to take place before SO_LINGER is -encountered later in C package. +This forces the C for C to take place before +SO_LINGER is encountered later in C package. -If you are writing a package that Cs, consider forcing an C -for any constants explicitly imported by other packages or which are usually -used when your package is Cd. +If you are writing a package that Cs, consider forcing +an C for any constants explicitly imported by other packages +or which are usually used when your package is Cd. =cut