The main thing make_immutable does is generate an optimized constructor for your class. You have to do this manually, because Moose doesn't know when you are done defining the class. Rather than going through all of the class metadata during construction, the optimized constructor is built to handle the specific attributes defined in your class.

namespace::autoclean and no Moose; are doing similar things. They remove imported functions in your class so that they can't be used as methods. This includes things like extends and has. But namespace::autoclean will automatically clean all of the imported functions, so it is much easier to use. Rather than no X; no Y;, a single use namespace::autoclean; will take care of all of the imports. It will also clean functions from modules that don't provide an unimport method to remove functions.


In reply to Re: Moose "immutabilize" Best Practice by Haarg
in thread Moose "immutabilize" Best Practice by kcott

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • 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:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.