Take a look at perlobj. Read it through, then seek (0), and read it again.

A key is to understand that the constructor takes a reference to something, normally a hash or array, and blesses it.

An important aspect of a blessed object is that when you call a member on it $obj->member ($params) a reference to the object is unshifted into @_ - that is, the first parameter that member gets is $self (== this for C++ people). You have to do a little more leg work than you did in C++: if you need to access your "member data" you have to retreive "this" from the parameter list.

Now go back and read that documentation again. In the simple case it is simple I assure you. :)


DWIM is Perl's answer to Gödel

In reply to Re: confusion about blessing inside a constructor by GrandFather
in thread confusion about blessing inside a constructor by edwardt_tril

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.