If you really have to create a complex datastructure to store all this, and then bless it much of the benefits with using objects will disepear.

How so? People use objects for many reasons, but one of the most important is the ability to bundle together data and the methods that use that data. You can still closely bundle data and process when data is stored in a hash. Since any pure scalar or reference can be stored as a hash value, you can store any type of variable needed by your methods: strings, numbers, file handles, compiled regular expressions, code references, array references, hash references, and even references to other objects.

I can not have an perl5-object with more then one instance variable without using a hash

Not so. You can bless any reference, including an array reference. Some people prefer to construct their objects using blessed array references. They feel it makes the object a little more opaque - unlike hash keys there is nothing in an array to indicate which variable has which meaning, thus making it harder to bypass accessor methods to get at data. Personally, I prefer a blessed hash with a member for each variable I want to store, but to each his own.

Best, beth


In reply to Re: Trying to understand Perl Objects by ELISHEVA
in thread Trying to understand Perl Objects by tamaguchi

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.