It depends.

If you were writing a dictionary, would you put all of the words in a list and all of the definitions in another list, then tell people to look for a word, count its position in the list, and then look for the definition in the other list at the corresponding position?

Instead, you'd probably invent something a lot like an existing dictionary, where you look up a definition directly by way of its word.

That's a hash, more or less. Maybe it's a little less efficient to flip through a few pages to try to find the right word and to find the right spot on the page, especially when if you remember that the definition you want is always number #383, but it has a lot of benefit to it as well.

How does this help you now? If you have a situation where you can arrange your data in terms of looking something up by a known value, you can use a hash. In dictionary terms, the name of the state could be the word and the name of the output file (or the filehandle or whatever) could be the definition. Every time you process a record, you look up the name of the output file in a hash using as a key the name of the state from the record.

Does that help?


In reply to Re: Use Hash? Array? Still confused after all these years. by chromatic
in thread Use Hash? Array? Still confused after all these years. by hmbscully

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.