Piers Cawley writes:
> Larry Wall <[EMAIL PROTECTED]> writes:
> > I've been thinking about this in my sleep, and at the moment I think
> > I'd rather keep .foo meaning $_.foo, but break the automatic binding
> > of the invocant to $_.  Instead of that, I'd like to see a really,
> > really short alias for $self.  Suppose we pick "o" for that, short
> > for "object".  Then we get self calls of the form:
> >
> >     o.frobme(...)
> I really, really don't want to see .foo meaning anything but $_.foo, so how
> about arranging things so that the invocant becomes $_ iff you don't give it a
> name.

The problem with that is that people start learning that .foo means call
foo on the current object, and then they write:

    method iterate () {
        for (@.objs) {
            .process($_);   # oops

And they may even know the rule, but $_ is a hard thing to get used to
in Perl.  I think it's best is "call a method on the current object"
looks the same everywhere it is used.


Reply via email to