Carl wrote: > For what it's worth, we had exactly this discussion a couple of days > ago on IRC. I represented your views above, Damian.
Thank-you for that. > As long as C<.perl> works the way it does, there can be no real > privacy. Sigh. That is indeed badly broken. Surely it ought to default to C<die>, and require class architects to override .perl explicitly if they wish to break encapsulation. > And thus C<.get_value> and C<.set_value> are just convenient > access points for the same behaviour. Yes. People are going to shoot themselves in the foot anyway, so let's legalize semi-automatic weapons as well. > I'm still undecided on whether or not I think C<use MONKEY_TYPING;> is > the right way to enable this kind of privacy breakage. Maybe nothing > is needed, since the C<^> in C<$obj.^attributes> (or the C<HOW>) > already says "warning! meta!". Except that, if the Attribute object is passed around, it may be saying "warning! meta!" in a completely different scope, in a completely different file. Damian