From 874ad44d852a3d0f27f985a25ac70c3cde24a259 Mon Sep 17 00:00:00 2001 From: Dave Rolsky Date: Fri, 9 Jul 2004 12:06:07 -0500 Subject: Bug with NEXT when called from an eval block Message-ID: p4raw-id: //depot/perl@23075 --- lib/NEXT.pm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'lib/NEXT.pm') diff --git a/lib/NEXT.pm b/lib/NEXT.pm index 64610fed27..1c6a316fff 100644 --- a/lib/NEXT.pm +++ b/lib/NEXT.pm @@ -1,5 +1,5 @@ package NEXT; -$VERSION = '0.60'; +$VERSION = '0.60_01'; use Carp; use strict; @@ -32,7 +32,9 @@ sub NEXT::ELSEWHERE::ordered_ancestors sub AUTOLOAD { my ($self) = @_; - my $caller = (caller(1))[3]; + my $depth = 1; + until ((caller($depth))[3] !~ /^\(eval\)$/) { $depth++ } + my $caller = (caller($depth))[3]; my $wanted = $NEXT::AUTOLOAD || 'NEXT::AUTOLOAD'; undef $NEXT::AUTOLOAD; my ($caller_class, $caller_method) = $caller =~ m{(.*)::(.*)}g; @@ -94,7 +96,9 @@ package EVERY; @ISA = 'NEXT'; sub AUTOLOAD { my ($self) = @_; - my $caller = (caller(1))[3]; + my $depth = 1; + until ((caller($depth))[3] !~ /^\(eval\)$/) { $depth++ } + my $caller = (caller($depth))[3]; my $wanted = $EVERY::AUTOLOAD || 'EVERY::AUTOLOAD'; undef $EVERY::AUTOLOAD; my ($wanted_class, $wanted_method) = $wanted =~ m{(.*)::(.*)}g; -- cgit v1.2.1