Instead of use::fields, Adrianh and Abigail advocate inside out objects: Class::InsideOut - yet another riff on inside out objects.
You might want to look at Abigail's Lexical::Attributes which wraps up inside-out objects in a nice Perl 6-ish source filter.
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
Hopefully this makes it clear :-)
And oh, another way to do it, apparently, is Attribute::Property, as juerd advocates on the use fields damnit conversation.
Any accessor generating system, like A::P or Class::MakeMethods will help if you have the discipline to only access the object by method.
You'll only get runtime errors on typos though, not compile-time (as you do with inside-out objects).
But if anybody has anything to add, or guidance on what I should do to escape the $foot->{shooting} typos, please chime in.
Get better at typing? :-)
Another approach would be to try a development technique that makes typos like this more immediately obvious. I find that doing TDD means that mistakes like this show up immediately in a failing test, making the pain levels drop to about zero for this kind of "invisible" mistake.
In reply to Re: Should I use Fields, InsideOuts, or Properties?
by adrianh
in thread Should I use Fields, InsideOuts, or Properties?
by tphyahoo
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |