Commit | Line | Data |
---|---|---|
55a1c97c | 1 | ============================================================================== |
bf5734d4 | 2 | Release of version 0.60 of NEXT |
55a1c97c JH |
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 JH |
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 JH |
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 JH |
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 JH |
54 | |
55 | ||
bf5734d4 JH |
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 JH |
60 | |
61 | ||
62 | ============================================================================== | |
63 | ||
64 | AVAILABILITY | |
65 | ||
66 | NEXT has been uploaded to the CPAN | |
55a1c97c JH |
67 | |
68 | ============================================================================== |