Author: autrijus
Date: Sat Apr 1 10:44:53 2006
New Revision: 8526
Modified:
doc/trunk/design/syn/S12.pod
Log:
* S12: The "call" form can now be used to call the next
MMD or SMD candidate.
A "proto" declaration needs to happen before multis.
Fix a misuse of ".call" method.
Modified: doc/trunk/design/syn/S12.pod
==============================================================================
--- doc/trunk/design/syn/S12.pod (original)
+++ doc/trunk/design/syn/S12.pod Sat Apr 1 10:44:53 2006
@@ -12,9 +12,9 @@
Maintainer: Larry Wall <[EMAIL PROTECTED]>
Date: 27 Oct 2004
- Last Modified: 23 Feb 2006
+ Last Modified: 1 Apr 2006
Number: 12
- Version: 10
+ Version: 11
=head1 Overview
@@ -542,6 +542,13 @@
:omit(Selector) # only classes that don't match selector
:include(Selector) # only classes that match selector
+In addition to C<next METHOD>, the special function C<call> dispatches
+to the next candidate, possibly with a new argument list:
+
+ call; # calls with the original arguments
+ call(); # calls with no arguments
+ call(1,2,3); # calls with a different set of arguments
+
=head1 Parallel dispatch
Any of the method call forms may be turned into a hyperoperator by
@@ -681,6 +688,8 @@
The C<sub> keyword is optional after either C<multi> or C<proto>.
+A C<proto> declaration must come before any matching multis, if at all.
+
=head1 Roles
Classes are primarily in charge of object management, and only
@@ -704,7 +713,7 @@
method feed ($food) {
$food.open_can;
$food.put_in_bowl;
- self.call;
+ self.some_other_method;
}
}