http://www.perlmonks.org?node_id=472747

tphyahoo has asked for the wisdom of the Perl Monks concerning the following question:

Monks, I am tired of shooting myself in the foot with $hashref->{typo} type errors that OO methodology was supposed to prevent. I started to use fields; # damnit like nothingmuch said. But that generates warnings that the underlying pseudohash implementation will be removed from perl soon. This was supposed to be fixed, and is not supposed to matter, but it's taking a long time.

Instead of use::fields, Adrianh and Abigail advocate inside out objects: Class::InsideOut - yet another riff on inside out objects.. This is because, says adrianh on the damnit thread, with fields you have problems when you don't control the base class -- though I don't understand exactly what adrianh meant by that.

And oh, another way to do it, apparently, is Attribute::Property, as juerd advocates on the "damnit" conversation.

Well, I am not trying to stir up trouble here, or trolling for repeats of what was already said in the above conversations. But if anybody has anything to add, or guidance on what I should do to escape the $foot->{shooting} typos, please chime in.

For now I am using fields with deprecation warnings turned off. If this is bad... if this will cause baby mice to eat my children... or even if there is just an easier way that I could get used to before growing too attached to use::fields... tap on the door of my cell and point me to enlightment, and I will try and return the favor some day.

Cheers.