I'm refraining. I've contributed to arguments on this topic, but I particularly don't like the constructor pattern. One of the things that makes Moo an improvement over Java/C++ is that Java and C++ require you to have all your arguments prepared and organized before the constructor runs. That can get really hard sometimes when there are complex dependencies between attributes, and Object::Pad falls into this trap. Moo's (and Moose's) feature of lazy-built attributes is a very elegant solution to the problem because it automatically figures out what order to initialize the attributes, and that order can change depending on the subclass.
While I have to admit that the new syntax looks a lot nicer, a downside is that I feel obligated to indent everything inside the class{} block which means my entire implementation ends up with an extra layer of indent.
Combined with the version requirements (and how most of my CPAN modules aim for older compatibility) and the fact that I'm constantly using lazy-build and coerce, I don't think I'll be using it any time soon.
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.