Author: autrijus
Date: Mon Apr 17 20:39:37 2006
New Revision: 8765
Modified:
doc/trunk/design/syn/S06.pod
Log:
* S06: Clarified "multidimensional Capture" part by stating
that only the positional/named parts gets into *@;x, and
the invocant is exempt from it. This allows for method
calls that takes multiple slices, such as $moose.zip(1;2;3)
in addition to zip(1;2;3).
Modified: doc/trunk/design/syn/S06.pod
==============================================================================
--- doc/trunk/design/syn/S06.pod (original)
+++ doc/trunk/design/syn/S06.pod Mon Apr 17 20:39:37 2006
@@ -13,9 +13,9 @@
Maintainer: Larry Wall <[EMAIL PROTECTED]>
Date: 21 Mar 2003
- Last Modified: 15 Apr 2006
+ Last Modified: 18 Apr 2006
Number: 6
- Version: 24
+ Version: 25
This document summarizes Apocalypse 6, which covers subroutines and the
@@ -744,11 +744,11 @@
=head2 Multidimensional argument list binding
-Some functions take more than one C<Capture> as their argument list, that they
-wish not to be flattened into one list. For instance, C<zip()> wants to
-iterate several lists in parallel, while array and hash subscripts want to
-process multidimensional slices. The set of underlying argument list (Capture)
-objects may be bound to a single array parameter declared with a C<;> twigil:
+Some functions take more than one lists of positional and/or named arguments,
+that they wish not to be flattened into one list. For instance, C<zip()> wants
+to iterate several lists in parallel, while array and hash subscripts want to
+process multidimensional slices. The set of underlying argument lists may be
+bound to a single array parameter declared with a C<;> twigil:
sub foo (*@;slices) { ... }
@@ -768,6 +768,11 @@
sub foo (*@;slices --> Num) { ... }
+The invocant does not participate in multi-dimensional argument lists,
+so C<self> is not present in any of the C<@;slices> below:
+
+ method foo (*@;slices) { ... }
+
=head2 Zero-dimensional argument list
If you call a function without parens and supply no arguments, the