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


in reply to Hash keys affect sorting

I must be missing something here, but why use a hash structure at all? Just put your data into an array, then if you want to be able to access the array based on certain keys, create a hash indexes for just those keys:
use strict; use warnings; my (@data, %identifier); while (<DATA>) { chomp; @_ = split /\s+/, $_, 6; push @data, [@_]; $identifier{$_[0]} = $data[-1]; # Index for first field } # Sort on multiple fields, in this case fifth and first... print "@$_\n" for sort {$a->[4] cmp $b->[4] || $a->[0] <=> $b->[0]} @d +ata; __DATA__ 1 1023 T C cc Item 1 2 1560 T C aa Item 2 3 9102 T C bb Item 3 4 11222 T C ff Item 4 7 13456 T C bb Item 7