Hi,
quoting r6624 of S06 [1]:
> Some functions take multiple Lists 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 (List)
> objects may be bound to a single array parameter declared with a C<;>
> twigil:
>
> sub foo (*@;slices) { ... }
sub foo (*@;AoA) { @;AoA }
my @array1 = <a b c>;
my @array2 = <d e f>;
my @AoA = foo @array1, @array2;
say [EMAIL PROTECTED]; # 2?
say [EMAIL PROTECTED]; # a b c?
say [EMAIL PROTECTED]; # d e f?
# Correct?
foo 1, 2;
# dies (neither 1 nor 2 are arrays)?
foo $arrayref1, $arrayref2;
# dies (neither $arrayref1 nor $arrayref2 are arrays)?
foo();
# works, +foo() is 0?
Also, is specifying other, non-slurpy arguments prior to a slurpy
@;multidim_arglist legal? E.g.:
sub bar ($normal_var, @;AoA) {...}
bar 42, @array1, @array2;
# $normal_var is 42,
# @AoA is ([EMAIL PROTECTED], [EMAIL PROTECTED])
# Correct?
The existence of a @array variable does not imply the existence of a
@;array variable, right?
--Ingo
[1] http://svn.perl.org/perl6/doc/trunk/design/syn/S06.pod