On Fri, 20 Aug 2004, Larry Wall wrote: > On Fri, Aug 20, 2004 at 10:07:02PM +0200, Juerd wrote: > : I'm proposing > : > : for zip(@foos, @bars, @xyzzies) <-> $foo, $bar, $xyzzy { ... } > : for %quux.kv <-> $key, $value { ... } > > That'd probably work on the keys only if the hash was declared to have > object keys. At least in Perl 5, the key is always a copy. > > : to mean > : > : for zip(@foos, @bars, @xyzzies) -> $foo is rw, $bar is rw, $xyzzy is rw { ... } > : for %quux.kv -> $key is rw, $value is rw { ... } > : > : Comments, anyone? > > It's really sick, and cute, and I love it. Unfortunately I'm not sure > it passes the "Are there already too many ways to declare a sub?" test... > > It's vaguely possible I could be persuaded on the basis that > > for zip @a ¥ @b <-> { ($^a,$^b) = ($^b,$^a) } > > could be made to work. But I'm still dubious. And arguably -> {...} > means the same as sub () {...}, implying there are no arguments.
Arguably it already means that. But if <-> were added, it might be a good reason to make -> {...} mean -> $_ {...}, using <-> {...} for -> $_ is rw {...}. A good way to remove one more special case (maybe offsetting the extra way to declare a sub, and sweeten the whole deal). -- Adam Lopresto http://cec.wustl.edu/~adam/ Yesterday upon the stair I met a man who wasn't there. He wasn't there again today -- I think he's from the CIA.