In Carp, minimise the amount of code running in package DB.
authorNicholas Clark <nick@ccl4.org>
Wed, 21 Jul 2010 12:56:53 +0000 (13:56 +0100)
committerNicholas Clark <nick@ccl4.org>
Wed, 21 Jul 2010 12:56:53 +0000 (13:56 +0100)
Use a block to limit it to just the invocation of caller.

lib/Carp.pm

index a08ff0f..add42d2 100644 (file)
@@ -1,6 +1,6 @@
 package Carp;
 
-our $VERSION = '1.16';
+our $VERSION = '1.17';
 
 our $MaxEvalLen = 0;
 our $Verbose    = 0;
@@ -66,11 +66,13 @@ sub cluck   { warn longmess  @_ }
 
 sub caller_info {
   my $i = shift(@_) + 1;
-  package DB;
   my %call_info;
+  {
+  package DB;
   @call_info{
     qw(pack file line sub has_args wantarray evaltext is_require)
   } = defined &{"CORE::GLOBAL::caller"} ? &{"CORE::GLOBAL::caller"}($i) : caller($i);
+  }
   
   unless (defined $call_info{pack}) {
     return ();