my $xml = <<'EOD' ; 101 Steve Jobs 102 mark blue 444 john Doe EOD my $data = XMLin( $xml, forcearray => ['instance', 'contact']) ; print Dumper( $data ) ; foreach $n (@{$data->{'instance'}}){ foreach $m (@{$data->{$n}{'contact'}}){ foreach $key (keys %{$data->{$m}}){ print "key: $key \n"; } } } #### $VAR1 = { 'instance' => [ { 'contact' => [ { 'firstname' => 'Steve', 'customerfid' => '101', 'lastname' => 'Jobs' }, { 'firstname' => 'mark', 'customerfid' => '102', 'lastname' => 'blue' } ] }, { 'contact' => [ { 'firstname' => 'john', 'customerfid' => '444', 'lastname' => 'Doe' } ] } ] };