"Mr. Nobody" <[EMAIL PROTECTED]> wrote :
> I have to wonder how many people actually like this syntax, and how many
only
> say they do because it's Damian Conway who proposed it. And map/grep
aren't
> "specialized syntax", you could do the same thing with a sub with a
prototype
> of (&block, *@list).
I 50% like it: I think Damian was on the right track. It will be good to
have a way
for L2R pipes to work (whatever the syntax): but the Perl5 syntax for R2L
works
for me already (I'm neutral about adding extra syntax for it).
But the squiggly arrow doesn't seem right. I contrast it with the anonymous
sub composer ("->") which was chosen, I think, because it worked well in
the context of a C<for> loop. Consider the following:
$\ = "|"; $, = ",";
1,2,3 -> { print } # 1,2,3
1,2,3 ~> print; # 1,2,3
1,2,3 ~> -> { print } # 1,2,3, but ugly
for 1,2,3 -> { print } # 1|2|3
for 1,2,3 ~> print; # 1|2|3, but syntax error (*)
for 1,2,3 print; # 1|2|3, but syntax error
all(1,2,3) ~> print # "junction(1,2,3)"
all(1,2,3) -> { print } # 1|2|3, but random order
It seems to me that the difference between the straight and squiggly arrows
is that one works with named subs; and the other with anonymous. If this
distinction is necessary, and ubiquitous, then perhaps we can live with it.
But then we shift our perception to think that -> is an L2R pipe into a
block: not an anonymous sub composer. Similarly, the C<for> function is
a strange thing sends its elements down the pipe, one-by-one -- its not
a loop at afterall! (A junction, in contrast, would send its elements down
the pipe in random order, or concurrently).
Dave.
p.s. has Larry finished with those LoTR DVDs yet?