Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: how to iterate over multiple hashes with same key value

by Utilitarian (Vicar)
on Jul 02, 2013 at 06:21 UTC ( #1041962=note: print w/replies, xml ) Need Help??

in reply to how to iterate over multiple hashes with same key value

When examining your data you should probably examine what you want to take from it before deciding how to store it, in this case 2 arrays keyed on the first column best represent your intended use of the data, there's no need to create separate data structures, in fact having a single data structure makes passing it to subsequent functions easier.

So here's a solution using a single data structure with each customer referencing 2 arrays, one for time and the other for location.

~/$ cat #!/usr/bin/perl use strict; use warnings; open(my $customers, $ARGV[0])|| die "Couldn't open $ARGV[0] $!\n"; my %cust; while(<$customers>){ chomp; my @rec=split(/\s+/, $_); push @{$cust{$rec[1]}->{time}},$rec[0]; push @{$cust{$rec[1]}->{location}},$rec[2]; } for my $cust (sort keys %cust){ print "$cust: ",join(" ",@{$cust{$cust}->{time}})," : ",join(" ",@ +{$cust{$cust}->{location}}),"\n"; } ~/$ perl tmp.dat a: 12:10 12:13 : america australia b: 12:11 2:30 : bombay bhutan c: 12:12 : calcutta n: 3:40 : neterland
Moved from duplicate thread
print "Good ",qw(night morning afternoon evening)[(localtime)[2]/6]," fellow monks."

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1041962]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (4)
As of 2020-10-22 22:01 GMT
Find Nodes?
    Voting Booth?
    My favourite web site is:

    Results (230 votes). Check out past polls.