What kind of object do you want to store? Note that running bless doesn't run the constructor, so in this case, the stored objects don't have the stored attribute (which is harmless, but for other classes, much more might be going on in the constructor).

You could call new in the package itself. To specify the class, it's better to use ref $self than __PACKAGE__, so if you later inherit from the class, objects of the new class respect the class of the storing object.

push @{ $self->{stored} }, ref($self)->new($it);

It might be cleaner to let the user specify what class to use, so they can use various classes according to their needs (see Dependency Injection). It's not clear how validation should work in such a case, though: maybe the classes themselves should define a validate method? Or once the object's been constructed, it's guaranteed to be valid? Give us more details so we can answer (or ask) more questions.

($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,

In reply to Re: calling new inside the same module? by choroba
in thread calling new inside the same module? by Discipulus

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.