Hi,

TSa <Thomas.Sandlass <at> orthogon.com> writes:
> Ingo Blechschmidt wrote:
> >     [EMAIL PROTECTED];    # Ref to array
> > 
> >     \(@array);  # List of refs to @array's elements, i.e. same as
> >     map { \$_ } @array;
> >     # Weird (violating the "parens are only for grouping" rule), but
> >     # consistent with Perl 5.
> > 
> > Correct?
> 
> I opt for 'no'. () should just group and \((((@array)))) is a sillily
> written arrayref. If you want @array to flatten lazily for enreferencing
> this should be \([EMAIL PROTECTED]) which works without parens as well: 
> [EMAIL PROTECTED]
> ---and is one char shorter than \(@array). And of course there is eager
> flattening enreferencing: [EMAIL PROTECTED]

I like this very much! :)

> BTW, I like the ubiquitous interpretation of prefix * as infinite arity
> marker at call sites as above and in sig definitions.

I agree completely :).

I'd like to violate the "parens are only for grouping" rule only if
absolutely necessary, and make more use of prefix *.

So...:

    [EMAIL PROTECTED];         # Reference to array, of course
    \(@array);       # same
    \(((@array)));   # same

    \(1,2,3);        # Reference to a list promoted to an array (!)
    \(((1,2,3)));    # same

    [EMAIL PROTECTED];        # List of references to @array's elements
    \*(((@array)));  # same

    \*(1,2,3);       # List of references to @array's elements
    \*(((1,2,3)));   # same

Opinions?


--Ingo

Reply via email to