Hi:
I'm trying to construct something like a nested for loop structuire to read the data out of an XML file using XML::Simple. Here's the sample xml... <?xml version='1.0' encoding='ISO-8859-1' ?> <ARBORINFO NAME="Info about Trees"> <FOREST NAME="olympic"> <TREE NAME="spruce"> <DIAM_HEIGHT>4.0,70.0</DIAM_HEIGHT> <DIAM_HEIGHT>4.1,70.1</DIAM_HEIGHT> <DIAM_HEIGHT>4.2,70.2</DIAM_HEIGHT> </TREE> <TREE NAME="redwood"> <DIAM_HEIGHT>5.0,80.0</DIAM_HEIGHT> <DIAM_HEIGHT>5.1,80.1</DIAM_HEIGHT> <DIAM_HEIGHT>5.2,80.2</DIAM_HEIGHT> <DIAM_HEIGHT>5.3,80.3</DIAM_HEIGHT> </TREE> <TREE NAME="pine"> <DIAM_HEIGHT>3.0,60.0</DIAM_HEIGHT> <DIAM_HEIGHT>3.1,60.1</DIAM_HEIGHT> </TREE> </FOREST> <FOREST NAME="acadia"> <TREE NAME="birch"> <DIAM_HEIGHT>1.0,30.0</DIAM_HEIGHT> <DIAM_HEIGHT>1.1,30.1</DIAM_HEIGHT> <DIAM_HEIGHT>1.2,30.2</DIAM_HEIGHT> <DIAM_HEIGHT>1.3,30.3</DIAM_HEIGHT> <DIAM_HEIGHT>1.4,30.4</DIAM_HEIGHT> <DIAM_HEIGHT>1.5,30.5</DIAM_HEIGHT> </TREE> <TREE NAME="oak"> <DIAM_HEIGHT>3.0,50.0</DIAM_HEIGHT> <DIAM_HEIGHT>3.1,50.1</DIAM_HEIGHT> <DIAM_HEIGHT>3.2,50.2</DIAM_HEIGHT> <DIAM_HEIGHT>3.3,50.3</DIAM_HEIGHT> </TREE> <TREE NAME="maple"> <DIAM_HEIGHT>2.0,40.0</DIAM_HEIGHT> </TREE> </FOREST> <FOREST NAME="caddo"> <TREE NAME="scrb"> <DIAM_HEIGHT>0.5,30.0</DIAM_HEIGHT> </TREE> </FOREST> </ARBORINFO> And here's the code that I got to partially work.... use XML::Simple; $xml = new XML::Simple; $phl = $xml->XMLin("./small.xml"); for(my $x=0;$x<$#{$phl->{FOREST}}+1;$x++) { $fname = $phl->{FOREST}[$x]{NAME}; $z = 0; print "forest: $fname \n"; for(my $y=0;$y<$#{$phl->{FOREST}[$x]{TREE}}+1;$y++) { $tname = $phl->{FOREST}[$x]{TREE}[$y]{NAME}; print " tree: $tname\n"; for(my $z=0;$z<$#{$phl->{FOREST}[$x]{TREE}[$y]{DIAM_HEIGHT}}+1;$z++) { $tdata = $phl->{FOREST}[$x]{TREE}[$y]{DIAM_HEIGHT}[$z]; print " tdata: $tdata\n"; } } } And this is what I got... forest: olympic tree: spruce tdata: 4.0,70.0 tdata: 4.1,70.1 tdata: 4.2,70.2 tree: redwood tdata: 5.0,80.0 tdata: 5.1,80.1 tdata: 5.2,80.2 tdata: 5.3,80.3 tree: pine tdata: 3.0,60.0 tdata: 3.1,60.1 forest: acadia tree: birch tdata: 1.0,30.0 tdata: 1.1,30.1 tdata: 1.2,30.2 tdata: 1.3,30.3 tdata: 1.4,30.4 tdata: 1.5,30.5 tree: oak tdata: 3.0,50.0 tdata: 3.1,50.1 tdata: 3.2,50.2 tdata: 3.3,50.3 tree: maple forest: caddo Not an ARRAY reference at tryxml.pl line 12. 2 things to note.... 1) It didn't pick up on the sole "maple" tree in "acadia" 2) It outright croaked when it tried to reference the sole tree in "caddo" as an array. I'm wide open as to suggestions on how to accomplish this. If foreach can be used somehow, I'm wide open to that. Any ideas? Thanks in Advance -dave