la prima cosa da fare è sempre leggere la documentazione, se lo avessi fatto avresti scoperto che tramite questo codice avresti potuto vedere la struttura logica del file.xml
codice:
use XML::Simple;
use Data::Dumper;
my $simple = XML::Simple->new( );
my $tree = $simple->XMLin( './data.xml' );
print Dumper($tree);
che produce questo output:
codice:
$VAR1 = {
'reply' => [
{
'user' => 'Larry',
'text' => 'Hi!',
'number' => '0'
},
{
'user' => 'Niki',
'text' => 'Morning!',
'number' => '1'
},
{
'user' => 'Joe',
'text' => 'Night!',
'number' => '2'
}
]
};
il che ti avrebbe consentito di capire che la struttura del comando che proponi:
codice:
print $tree->{ reply }->{ user }[0];
è logicamente sbagliata.
la struttura esatta è:
codice:
print $tree->{reply}->[<numero>]->{user},"\n";
per cui per visualizzare tutti gli user basta:
codice:
for (my $i=0; $i<=$#{$tree->{'reply'}}; $i++) {
print "$i: ",$tree->{'reply'}->[$i]->{'user'},"\n";
}