my $xml = 'your xml...';
my %coords_by_name;
while ($xml =~ m{(.*?)}gs ) {
my $placemark_snippet = $1;
if ( $placemark_snippet =~ m{(.*?)}gs ) {
my $name = $1;
while ( $placemark_snippet =~ m{(.*?)}gs ) {
push @{$coords_by_name{$name}}, $1;
}
}
}
use Data::Dumper;
print Dumper(\%coords_by_name);