my @hashes = \( my %countries, my %states, my %cities, ); for ( grep !/HEADING/, @locations ) { my @v = split /,/; $hashes[$_]{$v[$_]}++ for 0 .. $#v; } my @countries = sort keys %countries; my @states = sort keys %states; my @cities = sort keys %cities;