Change 13816 by jhi@alpha on 2001/12/20 14:18:56
Subject: [PATCH] Carp.pm caller_info returns wrong info for eval
Date: Wed, 19 Dec 2001 14:13:38 -0800
From: Robert Spier <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>
Affected files ...
.... //depot/perl/lib/Carp.t#2 edit
.... //depot/perl/lib/Carp/Heavy.pm#17 edit
Differences ...
==== //depot/perl/lib/Carp.t#2 (text) ====
Index: perl/lib/Carp.t
--- perl/lib/Carp.t.~1~ Thu Dec 20 07:30:05 2001
+++ perl/lib/Carp.t Thu Dec 20 07:30:05 2001
@@ -5,7 +5,7 @@
use Carp qw(carp cluck croak confess);
-print "1..7\n";
+print "1..8\n";
print "ok 1\n";
@@ -51,3 +51,8 @@
print "ok 7\n";
+# test for caller_info API
+my $eval = "use Carp::Heavy; return Carp::caller_info(0);";
+my %info = eval($eval);
+print "not " if ($info{sub_name} ne "eval '$eval'");
+print "ok 8\n";
==== //depot/perl/lib/Carp/Heavy.pm#17 (text) ====
Index: perl/lib/Carp/Heavy.pm
--- perl/lib/Carp/Heavy.pm.~1~ Thu Dec 20 07:30:05 2001
+++ perl/lib/Carp/Heavy.pm Thu Dec 20 07:30:05 2001
@@ -77,14 +77,14 @@
# the sub/require/eval
sub get_subname {
my $info = shift;
- if (defined($info->{eval})) {
- my $eval = $info->{eval};
+ if (defined($info->{evaltext})) {
+ my $eval = $info->{evaltext};
if ($info->{is_require}) {
return "require $eval";
}
else {
$eval =~ s/([\\\'])/\\$1/g;
- return str_len_trim($eval, $MaxEvalLen);
+ return "eval '" . str_len_trim($eval, $MaxEvalLen) . "'";
}
}
End of Patch.