dirtdog has asked for the wisdom of the Perl Monks concerning the following question:
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!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: How to print months in proper order from array
by stevieb (Canon) on Aug 30, 2016 at 20:07 UTC | |
by dirtdog (Monk) on Aug 30, 2016 at 20:13 UTC | |
by stevieb (Canon) on Aug 30, 2016 at 20:22 UTC | |
by dirtdog (Monk) on Aug 30, 2016 at 20:46 UTC | |
by Not_a_Number (Prior) on Aug 31, 2016 at 08:55 UTC |