John M. Dlugosz wrote:
Seriously,
Does this mean that the access of private attributes from trusted
classes is a "different form"? And that's why you need the qualified
syntax when I think it should not be necessary in all cases? Or should
that passage really say "not in non-trusted classes, including derived
classes"?
It's a different form. Line 1207:
(Private accessors are never virtual, and must be package qualified
if called from a trusted scope other than our own. That is, it's
either C<self!attr()> or C<$obj!TrustsMe::attr().>)
The reason is, I suspect, that what "trusts" does is putting a
!TrustsMe::attr() into the trustee's scope, instead of somehow shadowing
its own !attr() symbol.
Cheers,
Audrey