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

Reply via email to