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