Commit | Line | Data |
55a1c97c |
1 | ============================================================================== |
bf5734d4 |
2 | Release of version 0.60 of NEXT |
55a1c97c |
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 | |
52138ef3 |
28 | An particularly interesting use of redispatch is in |
55a1c97c |
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 | |
13021a80 |
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. |
55a1c97c |
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 | |
bf5734d4 |
53 | CHANGES IN VERSION 0.60 |
13021a80 |
54 | |
55 | |
bf5734d4 |
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 |
55a1c97c |
60 | |
61 | |
62 | ============================================================================== |
63 | |
64 | AVAILABILITY |
65 | |
66 | NEXT has been uploaded to the CPAN |
55a1c97c |
67 | |
68 | ============================================================================== |