in reply to Sorting hash

Firstly, you should avoid using the scalars $a and $b as they are special and are reserved for use with sort. Secondly, you should consider whether you want to remove the line terminator before doing your split; if you do, look at chomp.

Remember that each element you are passing into the sort routine is a hash reference so you have to de-reference to get to the element you want to sort by. This should do what you want.

my @Data = (); while ( <FH> ) { chomp; my ( $meth, $list, $count ) = split m{,}; push @Data, { meth => $meth, list => $list, count => $count, }; } @sortedData = sort { $a->{ meth } cmp $b->{ meth } } @Data;

I hope this is useful.

Cheers,

JohnGG