Release of version 0.60 of NEXT
NAME
NEXT - Pseudo class for method redispatch
DESCRIPTION
NEXT.pm adds a pseudoclass named C<NEXT> to any program that uses it. If a method C<m> calls C<$self->NEXT::m()>, the call to C<m> 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<m>.
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<AUTOLOAD>'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<AUTOLOAD> (above it, or to its left) might do better.
The module also allows you to specify that multiply inherited methods should only be redispatched once, and what should happen if no redispatch is possible.
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.
AVAILABILITY
NEXT has been uploaded to the CPAN