In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/75484d6bb1409577211ab22358d6ca9ad2b9c21c?hp=984730495a07ed8cbe2958b05c20564fd24321e2>

- Log -----------------------------------------------------------------
commit 75484d6bb1409577211ab22358d6ca9ad2b9c21c
Author: Father Chrysostomos <[email protected]>
Date:   Mon Sep 27 06:21:53 2010 -0700

    Version bump and perldelta for Carp

M       lib/Carp.pm
M       pod/perldelta.pod

commit 7154346bc9cb62d058f942090edfc5fc4d1e956a
Author: Aaron Crane <[email protected]>
Date:   Mon Sep 27 12:02:01 2010 +0100

    [perl #78082] Carp.pm: Avoid autovivification of CORE::GLOBAL::caller
    
    And add a test to prevent this happening again.

M       lib/Carp.pm
M       lib/Carp.t
-----------------------------------------------------------------------

Summary of changes:
 lib/Carp.pm       |    5 +++--
 lib/Carp.t        |    9 +++++++--
 pod/perldelta.pod |    8 ++++++++
 3 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/lib/Carp.pm b/lib/Carp.pm
index 0e9105a..4b3f4f6 100644
--- a/lib/Carp.pm
+++ b/lib/Carp.pm
@@ -1,6 +1,6 @@
 package Carp;
 
-our $VERSION = '1.18';
+our $VERSION = '1.19';
 
 our $MaxEvalLen = 0;
 our $Verbose    = 0;
@@ -86,7 +86,8 @@ sub caller_info {
       @DB::args = (); # Don't let anyone see the address of $i
       local $@;
       my $where = eval {
-       my $gv = B::svref_2object(\&CORE::GLOBAL::caller)->GV;
+       my $func = defined &{"CORE::GLOBAL::caller"} ? 
\&{"CORE::GLOBAL::caller"} : return '';
+       my $gv = B::svref_2object($func)->GV;
        my $package = $gv->STASH->NAME;
        my $subname = $gv->NAME;
        return unless defined $package && defined $subname;
diff --git a/lib/Carp.t b/lib/Carp.t
index 1c59987..8240cd3 100644
--- a/lib/Carp.t
+++ b/lib/Carp.t
@@ -11,9 +11,14 @@ my $Is_VMS = $^O eq 'VMS';
 
 use Carp qw(carp cluck croak confess);
 
-plan tests => 56;
+BEGIN {
+       plan tests => 56;
 
-ok 1;
+       # This test must be run at BEGIN time, because code later in this file
+       # sets CORE::GLOBAL::caller
+       ok !exists $CORE::GLOBAL::{caller},
+         "Loading doesn't create CORE::GLOBAL::caller"
+}
 
 { local $SIG{__WARN__} = sub {
     like $_[0], qr/ok (\d+)\n at.+\b(?i:carp\.t) line \d+$/, 'ok 2\n' };
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index d461e61..a5ed058 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -169,6 +169,14 @@ XXX
 
 =item *
 
+C<Carp> has been upgraded from version 1.18 to 1.19.
+
+It no longer autovivifies the C<*CORE::GLOBAL::caller> glob, something it
+started doing in 1.18, which was released with perl 5.13.4
+L<[perl #78082]|http://rt.perl.org/rt3//Public/Bug/Display.html?id=78082>
+
+=item *
+
 C<Data::Dumper> has been upgraded from version 2.128 to 2.129.
 
 C<Dumpxs> no longer crashes with globs returned by C<*$io_ref>

--
Perl5 Master Repository

Reply via email to