Let's look at this as a sort of a flow chart, to decide what our main data type is. I'm not going to go into when we'd use an array of arrays vs. an array of hashes, vs. a tied hash, etc.
- Do we care about the order in which the items were put in? (if yes : array).
- Are the values indexed by something other than positive integers or zero? (if yes : hash)
- Are the indexes sparely populated, if we look from the minimum to the maximum index? (if yes : hash)
- Are the indexes sparely populated, if we look from 0 to the maximum index?* (if yes : hash)
- All others : (use an array)
*Note : if you can shift your indexes, you might be able to get away with this, but you won't access the indexes directly, which might confuse some people. Eg, if we're tracking years 1920-2000, we might index on (year - 1900). We can also handle floats this way, if we have a known precision, like with yesterdays's discussion of indexing on earthquake magnitude in Problems with defining hashes, or we could handle negative integers, etc.
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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.