@cities = qw/ US:Miami AU:Melbourne US:Chicago /; map {my($co,$ci)=split/:/,$_; $n{$co}{$ci}=1 } @cities; foreach $x (sort keys %n) { foreach (sort keys %{$n{$x}}) { printf "$x - $_\n"; } }