note
water
I've been happy using Class::MethodMaker, and using the easily defined accessors / setters for <b>all</b> access into the object, both from outside, from inside (the class itself), and from any subclasses. Then nobody steps on anyone else. And given all the convenience functions C:MM offers, I'm not tempted to cheat and push stuff into hash directly.
<p>You won't find the eight characters
<b>
<code>
$self->{
</code>
</b>
in my code, as I never go into <code>$self</code> as a hash. In fact, CMM could migrate itself to inside-out objects or blessed pumpkin bread or <em>whatever</em>, and I wouldn't even notice.<p> The only downside I can see to this is speed, but my apps are all disk-IO-bound anyway, so the extra wrapper calls don't matter a whit.
<p>
Your mileage may vary--
<p>
[water], water, everywhere
375293
375293