On Fri, 18 Mar 2005 09:45:57 -0800, Larry Wall wrote: > I think we'll need to figure out how to shorten $_.foo instead.
It looks short enough to me already. More importantly, its meaning is immediately obvious. > Either that, or there has to be a way to explicitly make $_ the > invocant of a subblock. How about something like this? method foo{ .bar; # Acts on self for @stuff { .bar; # Acts on self } for @stuff -> $_ :self { .bar; # Acts on self, which is currently $_ } } Seems like overkill for trivial blocks though: map -> $_ :self { .bar } 1..10; but you can still just write $_.bar Maybe we could allow $_ to be elided? map -> :self { .bar } 1..10; > At the moment I'm trying to see if I could get used to ..method > meaning $_.method, and whether it buys me anything psychologically. I still prefer $_.method > Suppose you are one of those rare people who actually checks the > return value of print to see if you filled up the disk: > > if print {...} > > That doesn't parse currently ... (Backtracking the parser is > probably not the right answer.) If you're going to the trouble to check that (which I do, sometimes), surely two extra characters [$_ or ()] aren't that much of a problem? You probably wouldn't be using implicit variables, anyway. A backtracking parser seems pretty scary to me. If it takes a lot of work for the compiler to figure things out, it's going to be even harder for the programmer. -- Peter Haworth [EMAIL PROTECTED] "I think this is one of those traumatic things eggs have to face to prepare a good omelette." -- Jarkko Hietaniemi