You could do it this way (XML::Simple creates a hash of hashes because the nodes have an attribute called "name", I guess):
foreach $node ( keys( %{ $tree->{report}->{node} } ) ) {
print "$node:values: $tree->{report}->{node}->{$node}->{values}\n";
}
But you'd be better off adding KeyAttr to your new() call:
my $simple = XML::Simple -> new (KeyAttr => 'node');
Because that way you will get an array of nodes
$tree = {
'report' => {
'ip' => '1.1.1.1',
'id' => '0',
'node' => [
{
'mid' => 'machine1',
'time' => '110, 120, 130, 140, 150, 160',
'name' => 'Winxp',
'values' => '1, 2, 3, 4, 5, 6'
},
{
'mid' => 'machine2',
'time' => '110, 120, 130, 140, 150, 160',
'name' => 'Win2003',
'values' => '1, 2, 3, 4, 5, 6'
}
]
}
};
Hint -- use Data::Dumper to look at the tree.
Nobody says perl looks like line-noise any more
kids today don't know what line-noise IS ...