package NEXT;
-$VERSION = '0.61';
+$VERSION = '0.62';
use Carp;
use strict;
use overload ();
last if shift @forebears eq $caller_class
}
no strict 'refs';
- @{$NEXT::NEXT{$key,$wanted_method}} =
- map { *{"${_}::$caller_method"}{CODE}||() } @forebears
+ @{$NEXT::NEXT{$key,$wanted_method}} =
+ map {
+ my $stash = \%{"${_}::"};
+ ($stash->{$caller_method} && (*{$stash->{$caller_method}}{CODE}))
+ ? *{$stash->{$caller_method}}{CODE}
+ : () } @forebears
unless $wanted_method eq 'AUTOLOAD';
- @{$NEXT::NEXT{$key,$wanted_method}} =
- map { (*{"${_}::AUTOLOAD"}{CODE}) ? "${_}::AUTOLOAD" : ()} @forebears
+ @{$NEXT::NEXT{$key,$wanted_method}} =
+ map {
+ my $stash = \%{"${_}::"};
+ ($stash->{AUTOLOAD} && (*{$stash->{AUTOLOAD}}{CODE}))
+ ? "${_}::AUTOLOAD"
+ : () } @forebears
unless @{$NEXT::NEXT{$key,$wanted_method}||[]};
$NEXT::SEEN->{$key,*{$caller}{CODE}}++;
}
Revision history for Perl extension NEXT.pm.
-0.01 Tue Apr 10 18:27:00 EST 2001
-
- - original version
-
-
-0.01 Thu Apr 12 17:06:49 2001
-
- - Documented the difference between NEXT and SUPER (thanks Ken)
-
-
-
-0.01 Thu Apr 12 17:15:42 2001
-
-
-
-0.02 Mon Sep 3 07:52:27 2001
-
- - Fixed setting of $AUTOLOAD in NEXT'd AUTOLOADS (thanks Leonid)
-
- - Changed licence for inclusion in core distribution
-
-
-0.50 Fri Nov 16 11:20:40 2001
-
- - Added a $VERSION (oops!)
-
- - Fixed handling of diamond patterns (thanks Paul)
-
- - Added NEXT::ACTUAL to require existence of next method (thanks Paul)
-
- - Added NEXT::UNSEEN to avoid calling multiply inherited
- methods twice (thanks Paul)
-
- - Re-fixed setting of $AUTOLOAD in NEXT'd AUTOLOADS to be
- consistent with more useful SUPER:: behaviour
-
- - Corified tests
-
-
-0.51 Tue Jul 29 23:09:48 2003
-
- - Fixed NEXT::UNSEEN bug under diamond inheritance (thanks Dan
- and Alan)
-
- - Moved &ancestors out of NEXT class in case anyone ever
- calls NEXT::ancestors
-
- - Replaced UNSEEN with DISTINCT (but left UNSEEN operational
- for backwards compatibility)
-
-
-0.52 Wed Jul 30 21:06:59 2003
-
- - Refixed NEXT::UNSEEN bug under diamond inheritance
-
-
-0.53 Tue Aug 12 10:53:25 2003
-
- - Re-re-fixed NEXT::UNSEEN bug under diamond inheritance
-
-
-0.60 Wed Aug 13 03:55:33 2003
-
- - Re-re-re-fixed NEXT::UNSEEN bug under diamond inheritance
- (Note to self: don't code whilst on vacation!)
-
- - Implemented and documented EVERY functionality
+0.62 Wed Apr 8 03:27:25 2009
+ - Be less aggressive when looking at the symbol table to find
+ methods. This prevents "used only once" warnings on 5.10.
+
+0.61 Tue Mar 24 02:50:26 2009
+ - Pod tweaks (Alan Ferrency).
+ - Fix a bug when using NEXT from within an eval block (Dave Rolsky).
+ - Fix some pod typos (Piotr Fusik).
+ - Fix a bug when using NEXT within overloaded stringification
+ (Marcel GrĂ¼nauer).
+ - Make NEXT work with AUTOLOAD (Damian Conway).
+
+0.60 Wed Aug 13 03:55:33 2003
+ - Re-re-re-fixed NEXT::UNSEEN bug under diamond inheritance
+ (Note to self: don't code whilst on vacation!)
+ - Implemented and documented EVERY functionality
+
+0.53 Tue Aug 12 10:53:25 2003
+ - Re-re-fixed NEXT::UNSEEN bug under diamond inheritance
+
+0.52 Wed Jul 30 21:06:59 2003
+ - Refixed NEXT::UNSEEN bug under diamond inheritance
+
+0.51 Tue Jul 29 23:09:48 2003
+ - Fixed NEXT::UNSEEN bug under diamond inheritance (thanks Dan
+ and Alan)
+ - Moved &ancestors out of NEXT class in case anyone ever
+ calls NEXT::ancestors
+ - Replaced UNSEEN with DISTINCT (but left UNSEEN operational
+ for backwards compatibility)
+
+0.50 Fri Nov 16 11:20:40 2001
+ - Added a $VERSION (oops!)
+ - Fixed handling of diamond patterns (thanks Paul)
+ - Added NEXT::ACTUAL to require existence of next method (thanks Paul)
+ - Added NEXT::UNSEEN to avoid calling multiply inherited
+ methods twice (thanks Paul)
+ - Re-fixed setting of $AUTOLOAD in NEXT'd AUTOLOADS to be
+ consistent with more useful SUPER:: behaviour
+ - Corified tests
+
+0.02 Mon Sep 3 07:52:27 2001
+ - Fixed setting of $AUTOLOAD in NEXT'd AUTOLOADS (thanks Leonid)
+ - Changed licence for inclusion in core distribution
+ - Documented the difference between NEXT and SUPER (thanks Ken)
+
+0.01 Tue Apr 10 18:27:00 EST 2001
+ - original version