On Mon, 23 Sep 2002, Jonathan Scott Duff wrote:
> On Mon, Sep 23, 2002 at 04:58:55PM -0400, Trey Harris wrote:
> > for (1,("a","b","c"),3 { ... }
> >
> > and
> >
> > for 1,("a","b","c"),3 { ... }
> >
> > Now that I've ventured away from DWIMs and more into WIHDTEMs (What In
> > Hell Does This Expression Mean), is the above equivalent to
> >
> > for 1,qw(a b c), 3 { ... }
> >
> > as well?
>
> I'd expect all 3 to mean exactly the same thing.
>
> > A final unresolved question. I take it that the splat operator is a
> > deeply flattening operator. For instance,
> >
> > *[1,[2,[3,4,5]],6]
> >
> > will be converted into
> >
> > [1,2,3,4,5,6]
>
> What other operator acts recursively in this fashion? None that I know
> of. If someone wants the recursive behavior, they can redefine the
> operator appropriately.
>
> Besides, with the ^ operator, you can already express arbitrary
> levels:
>
> *[1,[2,[3,4,5]],6] # 1,[2,[3,4,5]],6
> ^*[1,[2,[3,4,5]],6] # 1,2,[3,4,5],6
> ^^*[1,[2,[3,4,5]],6] # 1,2,3,4,5,6
>
> et cetera. :-)
Y'all have it backwards.
[1,*[2,[3,4,5]],6] # [1,2,[3,4,5],6]
[1,*[2,*[3,4,5]],6] # [1,2,3,4,5,6]
Flat flattens outwards, not inwards.
Luke