#!/usr/bin/perl use strict; use warnings; use XML::Simple; use Data::Dumper; my $Document =XMLin("foo.xml"); while (my ($key, $val) = each %{$Document->{Placemark}}){ printf "%s is at %s\n", $key, $val->{Point}{coordinates}; } __END__ Abbeyhill is at -3.17075,55.95705,0 Abbey Strand is at -3.17423,55.95277,0 Abbeymount is at -3.1723,55.95524,0