Re-bonjour à tous et à toutes,

Je reviens vers vous car je me heurte à un problème concernant l'utilisation des parseurs pour lire un XML en Perl.
Je me suis inspiré (pour ne pas dire autre chose) du tuto réalisé par Djibril et Nicolas.
Voici mon problème j'ai un fichier XML que je souhaite décortiquer avec du perl afin de récupérer des valeurs...

Voici le XML vue avec Dumper


Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 $VAR1 = {
          'queues' => {
                      'queue' => {
                                 'feed' => {
                                           'atom' => 'valeur1',
                                           'rss' => 'valeur2'
                                         },
                                 'stats' => {
                                            'consumerCount' => 'nombre1',
                                            'dequeueCount' => 'nombre2',
                                            'enqueueCount' => 'nombre3',
                                            'size' => '0'
                                          },
                                 'name' => 'INCOMING_1'
                               }
                    }
        };

Voici le code perl

Code perl : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
=#!/usr/bin/perl -w
 
use strict;
use Switch;
use warnings;
use LWP::Simple;
 
use XML::Simple;
my $parser = XML::Simple->new( KeepRoot => 1 );
 
my $file_in="filein.xml";
 
 
getstore("@ de l'xml",$file_in);
my (%args, %queues);
my %error=('ok'=>0,'warning'=>1,'critical'=>2,'unknown'=>3);
my ($warninglevel, $criticallevel, $tmp, $evalcount, $switch, $queueselect, $queuevalue);
my $key = my $value = my $i = my $k = 0;
my $exitcode = "unknown";
 
 
# Creation du fichier resultat
my $FichierResulat = 'resultat.txt';
open( my $FhResultat, '>', $FichierResulat )
  or die("Impossible d'ouvrir le fichier $FichierResulat\n$!");
my $doc = $parser->XMLin($file_in);
 
 
use Data::Dumper;
print Dumper $doc;
 
 
 
#tout le fichier XML est dans $doc sous forme d'arbre
 
foreach my $valeur ( @{ $doc->{queues}->{queue}} ) {
 print {$FhResultat} 'Queue valeur : ';
 print {$FhResultat} $valeur->{name};
 print {$FhResultat} "\t";
 
 print {$FhResultat} 'Size : ';
 print {$FhResultat} $valeur->{stats}->{size};
 
 print {$FhResultat} 'DequeueCount : ';
 print {$FhResultat} $valeur->{stats}->{dequeuecount};
 
}
 
 
# Fermeture du fichier
close($FhResultat);


Lorsque je lance le script je me retrouve avec un jolie "Not an ARRAY reference at monscript.pl line 42."

Impossible de trouver le pk du comment...
Si vous avez une piste messieurs (dames) je suis preneur..

En vous remerciant.
Christophe