http://www.perlmonks.org?node_id=663375


in reply to How do i sort a hash or array?

Your code should read:
%person = ( firstname => ['name1', 'name2', 'name3'], lastname => ['lname1', 'lname2', 'lname3'], city => ['city1','city2','city3'] );
or
$person = { firstname => ['name1', 'name2', 'name3'], lastname => ['lname1', 'lname2', 'lname3'], city => ['city1','city2','city3'] };
If you really need your data to look like this you can sort it like this.
%person = ( firstname => ['name2', 'name1', 'name3'], lastname => ['lname2', 'lname1', 'lname3'], city => ['city2','city1','city3'] ); for (map {$_->[1] } sort {$a->[0] cmp $b->[0] } map { [$person{firstname}[$_], $_] } (0 .. scalar @{$person{firstname}} - 1)) { printf("%s %s %s\n", $person{firstname}[$_], $person{lastname}[$_], $person{city}[$_]); }
-- gam3
A picture is worth a thousand words, but takes 200K.