%HoA = ( part1 => [ 'Sc', 'John', 'Jacob', 'Jingle' ], part2 => [ 'Sc', 'Diffie', 'Whitman' ] jpart3 => [ 'Mo', 'Diffie', 'Duffy' ] ); #### sub sort_keys_ascending{ sort keys %HoA } #### my $href = \%HoA; sub sort_typeparm_ascending{ sort{ $href->{$a}[$col_id] cmp $href->{$b}[$col_id] } keys %data } #### sub sort_typeparm_descending{ sort{ $href->{$b}[ 0 ] cmp $href->{$a}[ 0 ] || ????? KEY{$b} ????? cmp ????? KEY{$a} ????? } keys %data; }