1 | ==============================================================================
|
---|
2 | Release of version 0.60 of NEXT
|
---|
3 | ==============================================================================
|
---|
4 |
|
---|
5 |
|
---|
6 | NAME
|
---|
7 |
|
---|
8 | NEXT - Pseudo class for method redispatch
|
---|
9 |
|
---|
10 |
|
---|
11 | DESCRIPTION
|
---|
12 |
|
---|
13 | NEXT.pm adds a pseudoclass named C<NEXT> to any program that
|
---|
14 | uses it. If a method C<m> calls C<$self->NEXT::m()>, the call to
|
---|
15 | C<m> is redispatched as if the calling method had not originally
|
---|
16 | been found.
|
---|
17 |
|
---|
18 | In other words, a call to C<$self->NEXT::m()> resumes the
|
---|
19 | depth-first, left-to-right search of parent classes that
|
---|
20 | resulted in the original call to C<m>.
|
---|
21 |
|
---|
22 | Note that this is not the same thing as C<$self->SUPER::m()>, which
|
---|
23 | begins a new dispatch that is restricted to searching the ancestors
|
---|
24 | of the current class. C<$self->NEXT::m()> can backtrack past
|
---|
25 | the current class -- to look for a suitable method in other
|
---|
26 | ancestors of C<$self> -- whereas C<$self->SUPER::m()> cannot.
|
---|
27 |
|
---|
28 | An particularly interesting use of redispatch is in
|
---|
29 | C<AUTOLOAD>'ed methods. If such a method determines that it is
|
---|
30 | not able to handle a particular call, it may choose to
|
---|
31 | redispatch that call, in the hope that some other C<AUTOLOAD>
|
---|
32 | (above it, or to its left) might do better.
|
---|
33 |
|
---|
34 | The module also allows you to specify that multiply inherited
|
---|
35 | methods should only be redispatched once, and what should
|
---|
36 | happen if no redispatch is possible.
|
---|
37 |
|
---|
38 |
|
---|
39 | AUTHOR
|
---|
40 |
|
---|
41 | Damian Conway (damian@conway.org)
|
---|
42 |
|
---|
43 |
|
---|
44 | COPYRIGHT
|
---|
45 |
|
---|
46 | Copyright (c) 2000-2001, Damian Conway. All Rights Reserved.
|
---|
47 | This module is free software. It may be used, redistributed
|
---|
48 | and/or modified under the same terms as Perl itself.
|
---|
49 |
|
---|
50 |
|
---|
51 | ==============================================================================
|
---|
52 |
|
---|
53 | CHANGES IN VERSION 0.60
|
---|
54 |
|
---|
55 |
|
---|
56 | - Re-re-re-fixed NEXT::UNSEEN bug under diamond inheritance
|
---|
57 | (Note to self: don't code whilst on vacation!)
|
---|
58 |
|
---|
59 | - Implemented and documented EVERY functionality
|
---|
60 |
|
---|
61 |
|
---|
62 | ==============================================================================
|
---|
63 |
|
---|
64 | AVAILABILITY
|
---|
65 |
|
---|
66 | NEXT has been uploaded to the CPAN
|
---|
67 |
|
---|
68 | ==============================================================================
|
---|