>>>>> "John" == John Siracusa <[EMAIL PROTECTED]> writes:
John> I don't like $ME either, but my alternative is probably even more
John> blasphemous: use $self. "It usurps a variable name that has been legal for
John> customer use in prior Perls!" you re-exclaim. Not if it only appears in a
John> new-to-Perl-6 construct like:
John> method get_polite_age(<neat stuff could go here>)
John> {
John> return ($self->age >= 40) ? 39 : $self->age;
John> }
Well, that I could support. Although having the p52p6 translator
recognize which subs should really be methods might be a bit messy,
and then it'd have to recognize any uses of $self for a proper $self,
and not shift something into that, or whatever. :)
<voice character="Dr. Smith">The pain! The pain!</voice>
John> But wait, it gets worse: I'd even be happy with the bareword "self"
John> method get_polite_age(<neat stuff could go here>)
John> {
John> return (self->age >= 40) ? 39 : self->age;
John> }
John> I know, I'm obviously crazy as a loon. You may escort me to Perl culture
John> prison now... ;)
I'll have an adjacent cell. I actually like that *better* than $self.
Let's not stop there though. Perhaps we need "self" and "super" and
"thisContext". Only half joking... this would solve a lot of the
hacking issues. self could be a "die" if we weren't called as a
method, and then we wouldn't need to have a separate "method" type.
Oooh. Getting better all the time! Or maybe just return undef, and
let the method call fail on the undef, or we could check it ahead:
if (my $me = self) {
$me->do_this
} else {
$CGI::Q->do_this
}
To steal from CGI.pm's problem. Or, if it threw an exception:
try {
self->do_this
} error {
$CGI::Q->do_this
}
or whatever the syntax is this week.
--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<[EMAIL PROTECTED]> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!