You raise good points. I haven't thought so hard about the
issue as you. I have an interest as I am looking to abandon
my usage of hash based objects. I approached
sh1tn's post
from a
don't reinvent the wheel stance.
Not copying the parameter hash seems to leave the state of
our new object open to the whims of another reference. Our
capsule is dissolved before it is created.
I have used hash based objects a lot, in my situations the
trampling and encapsulation issues have not been a
problem. But constraining the keys of the hash is something I quickly
found useful. TheDamian's code lets strict
give that to us by replacing strings with lexicals (I like that). I would appreciate your solution for HOHObjects or
your other thoughts on this aspect of the matter.
Class::Std's prime purpose is to constrain clients to
the interface. That makes me wonder for what purpose you
would use something other than a scalar as an
object here; to me it seems to expose implementation to
save only one indirection.
Be well,
rir
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.