Larry Wall skribis 2005-07-11 18:29 (-0700): > is that we simply outlaw .foo notation at *compile* time in those > scopes where we know (at compile time) that $_ and $?SELF diverge. > In such a scope you *must* specify $_ or $?SELF (or equivalent).
What? That makes having a default at all useless, it makes moving code without breaking it impossible again, it requires a lot of extra typing with shifted keys, it adds an arbitrary looking exception, and it is wildly undwimmy and impractical, and thus unperlish by every definition I know. This is, by far, the silliest solution for this problem that I have seen proposed, because it is a combination of almost all the cons, and comes at a time in which all the pros and cons of other solutions are already known and discussed. > That's the default, and I'm not changing my mind ever again, at least > till next week. I can wait till next week. > use self "this"; > use self "self"; > use self "o"; > use self "./"; > use self ""; Any of these must be the default, and frankly I do not care much which one it is, if that means the current non-solution goes away. Obviously, use self "" is the least attractive of these, but I would still prefer it to outlawing .foo. If the default isn't sane, the language isn't sane. That there is a pragma to change things, should never be a reason to stop picking good defaults. > Yes, this is possibly a hazard for cut-n-pasters. But then, > you weren't supposed to be cutting-n-pasting anymore, were you? No, but I do refactor. I do add loops and methods around existing code. I do use for (or given in p6) to topicalize, to be able to type LESS. In Perl 5, I really hate for ($object) { $_->method(...); $_->method(...); $_->method(...); } And the Perl 6 equivalent until your revelation, given $object { .method(...); .method(...); .method(...); } was the perfect solution. Killing off a useful and much used idiom even before the first release is quite an accomplishment. Disallowing .method here means a huge step back in time. Back to $_.method or $object.method. Juerd -- http://convolution.nl/maak_juerd_blij.html http://convolution.nl/make_juerd_happy.html http://convolution.nl/gajigu_juerd_n.html