%construct and %TEST are identical at the end of this code, is that what you want? I think the first part of your code could be simplified like this:
my %construct; push @{ $construct{$_->[1]} }, $_->[2] for (@records);
(where @records is some collection of array refs like you have in your first line of code). Just push onto the appropriate array as you see each item. Having a two-layered hash seems redundant. Your while loop is simply making a copy of the data in %TEST, and doesn't seem to be doing anything to the data.

How can I perform work on each of the values (i.e. maybe a join) and then print the key with its corresponding list of values?
I'm not sure I really understand your question. To get back to your data to perform some work on it, you can use the while loop you already have (using $key and @values). I don't know what you mean by "maybe a join" -- since all the arrays are indexed by different keys. Perhaps an example data set would help. To just print the key with its associated list of values:
while (my ($k,$v) = each %construct) { print "$k has values: " . join(',', @$v) . "\n"; }

blokhead


In reply to Re: How to print a hash of arrays with the key by blokhead
in thread How to print a hash of arrays with the key 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.