Hi Monks

I'm trying to figure out how to print unique months in their proper order. I have a Hash of Hashes and I'm storing the unique values into an array, but that may not be the best way to do it in order to achieve my goal, which is to display all the unique months in proper order from my available data...jan,feb,mar, etc.

I'm hoping someone can help with this and maybe even show a better(using less lines of code) way to accomplish this task. My code is as follows.

#!/usr/bin/perl use strict; my %HoH; my $months; my $key; my %seen; my @uniq; my $client; my $Months_count; while (<DATA>) { ($client,$Months_count) = split /\|/, $_; my %by_month = split ' ', $Months_count; $HoH{$client} = \%by_month; } while ( ($client, $months) = each %HoH ) { while (defined ($key = each %$months)) { $seen{$key}++; } @uniq = keys %seen; } print "@uniq\n"; __DATA__ IBM | February 1 March 5 July 4 Oracle| January 3 March 4 April 6 May 5 RedHat | March 2 June 3 August 1

Any help is greatly appreciated!


In reply to How to print months in proper order from array by dirtdog

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.