> > $foo.{bar_attr} = 1;
> >
> > This would help Perl 6 support legacy Perl 5 OO code
> 
> How?  Perl 5 code doesn't use ".", and if Perl 5 code has to be changed
> anyway, why not change it "all the way"?

Because changing:

        $foo->{bar_attr}

to:

        $foo.{bar_attr}

is a generic, purely syntactic change and easily automated, whereas changing
it to:

        $foo.bar_attr

is a semantic change (why does *this* particular instance change to a method
call, rather than a hash look-up?) and consequently *much* harder to get right.


> > (not to mention legacy Perl 5 OO coders ;-)
> 
> I dunno, the "$foo.{bar_attr} calls a method" thing seems kind of pointless
> (and mildly evil) to me.  It seems like a throwback to the bad old days of
> tied-hashes-as-oo.

Sure. *You* would never do it. Neither would I. But TMTOWTDI.

And if we don't support this, people will be forever having to create Perl 6
adapter classes just so that they can make use of legacy Perl 5 code. :-(
Damian

Reply via email to