Hashes may not be the fastest way to access data, but they are fast enough for most purposes. I used to be very concerned about performance and speed hits when I started doing perl (it probably comes from when I was trying to do graphics programming for the 286 and every clock cycle counted and certain operations, like division, were feared like the plague). Nowadays I'm more relaxed.

Perl hashes usually gets the job done with the least amount of effort. I use them where I'd use C structs, Java Objects, Vectors, Sets or whatever. They are extremely versatile beasts. It's only when I have ordered data that I have the need for arrays, really. Which leads me to the point I'm trying to make:

For most classes, the members aren't ordered among themselves. In your example, the foo and bar member variables have no real relation to each other and aren't ordered. Since they only exist to hold named pieces of data it makes perfect sense to me to store them in a hash. Of course, there are classes where it'd be more intuitive to use an array but I can't think of a good examle right now. And anyway, if I needed a class to store ordered data, I'd still use a hash and let one of the member variables be a reference to an anonymous array.

Cheers,
--Moodster


In reply to Re: %hash (@array && use constant) in Modules by moodster
in thread %hash (@array && use constant) in Modules by abaxaba

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.