# sort by zip-code my @sorted_by_zip_code = sort { (split /\|\|/ => $hash{$a})[3] <=> (split /\|\|/ => $hash{$b})[3] } keys %hash; # sort by city alphabetically my @sorted_by_city = sort { lc((split /\|\|/ => $hash{$a})[1]) cmp lc((split /\|\|/ => $hash{$b})[1]) } keys %hash;