use XML::Simple; use Data::Dumper; use strict; use warnings; my $xml = new XML::Simple (KeyAttr=>[]); my $data = $xml->XMLin("xml.xml"); #print Dumper($data); foreach my $machine (@{$data->{server}}) { my $name=$machine->{name}; print "$name\n"; my $file_list = $machine->{file}->{filename}; printf "\t%s\t\n",join(' ', @$file_list); }