use Data::Printer; p $data; #### \ { node [ [0] { name "1st node", text "Text of 1st node" }, [1] { name "2nd node", text "Text of 2nd node" }, [2] { name "3rd node", text "Text of 3rd node" } ] } #### foreach my $node (@{$data->{node}}) { print $node->{name}.": ".$node->{text}."\n"; } #### 1st node: Text of 1st node 2nd node: Text of 2nd node 3rd node: Text of 3rd node #### my $xml = XML::Simple->new( KeyAttr => 1, ForceArray => 0, KeepRoot => 1 );