============================================================================== Release of version 0.02 of NEXT ============================================================================== NAME NEXT - Pseudo class for method redispatch DESCRIPTION NEXT.pm adds a pseudoclass named C to any program that uses it. If a method C calls C<$self->NEXT::m()>, the call to C is redispatched as if the calling method had not originally been found. In other words, a call to C<$self->NEXT::m()> resumes the depth-first, left-to-right search of parent classes that resulted in the original call to C. Note that this is not the same thing as C<$self->SUPER::m()>, which begins a new dispatch that is restricted to searching the ancestors of the current class. C<$self->NEXT::m()> can backtrack past the current class -- to look for a suitable method in other ancestors of C<$self> -- whereas C<$self->SUPER::m()> cannot. An particularly interesting use of redispatch is in C'ed methods. If such a method determines that it is not able to handle a particular call, it may choose to redispatch that call, in the hope that some other C (above it, or to its left) might do better. Note that it is a fatal error for any method (including C) to attempt to redispatch any method except itself. For example: sub D::oops { $_[0]->NEXT::other_method() } # BANG! AUTHOR Damian Conway (damian@conway.org) COPYRIGHT Copyright (c) 2000-2001, Damian Conway. All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself. ============================================================================== CHANGES IN VERSION 0.02 - Fixed setting of $AUTOLOAD in NEXT'd AUTOLOADS (thanks Leonid) - Changed licence for inclusion in core distribution ============================================================================== AVAILABILITY NEXT has been uploaded to the CPAN and is also available from: http://www.csse.monash.edu.au/~damian/CPAN/NEXT.tar.gz ==============================================================================