In that case, what you probably want is a hash of arrays, rather than an array of hashes. You want a hash keyed on the unique IDs in your first file, and values consisting of 4-element arrays. Then you can loop through your hash a second time and print out all key/value pairs that have something other than zero in one of their value elements.

Give that a shot, and if you have trouble, post the code so we can help with it. Pseudo-code would look something like this:

instantiate a hash open file of unique keys while read a line get the key from it make it a key in your hash, with its value being a reference to an a +rray containing four zeros for N = 1 to 4 open file1 while read a line split the key and value out of it if the key exists in your hash assign the value to your hash as the Nth element of an array + referred to by this key if the key doesn't exist skip it or error, depending on your design for each key in the hash if any of its array's elements are non-zero print the key and array elements joined by tabs

Aaron B.
My Woefully Neglected Blog, where I occasionally mention Perl.


In reply to Re^2: How to make a array of hashes and search them by aaron_baugher
in thread How to make a array of hashes and search them by Anonymous Monk

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.