in reply to \G inline RegEx operator

Your method is fine, but here's how I would first approach this problem. It's based on some assumptions about how the coordinate data looks, so it may not be usable for you. However, I think the process of developing it is simpler, and perhaps it's even a little more robust.
if ($kmlfile =~ m{<coordinates>(.*?)</coordinates>}) { my @triples = split(' ', $1); for (@triples) { my ($lat, $long) = split(',', $_); push(@coords, [$lat, $long]); # or whatever } }
It's a little more robust in that if there is non-conforming data it will be obvious (like one of your coordinates will be undef or contain junk.) Regex approaches have a tendency to just stop giving you results without any hint that there's a problem. That is, when they stop matching you're not sure if it's because there's nothing more to match or if there's a problem with your regex.