bonjour,
Je suis entrain de découvrir la programmation PERL et plus particulièrement PERL OO. Mon problème est le suivant:
J'ai un DOM XML qui sert a initialiser une instance d'une classe Service.
pour cela le constructeur est appelé et reçoit la racine. dans le DOM, j'ai une balise <critere> qui contient des enregistrements <regexp>.*</regexp>. Je voudrai que ma classe contienne comme attribut la liste de ces regexp. pour cela j'ai une méthode dont le code est :qui est appelée depuis le constructeur par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 sub criteres { my $self = shift; if (@_) { my $NodeList = shift; for (my $i = 0; $i < $NodeList->getLength; $i++){ $self->{CRITERES}[$i] = $NodeList->item($i)->getFirstChild->getNodeValue; } } foreach my $i ( 0 .. $#{$self->{CRITERES}} ) { print $self->{CRITERES} [$i] , "\n";} return $self->{CRITERES}; }Mon problème est que le foreach d'affichage fonctionne ici, mais si je le sort dans mon programme principal, ça ne compile pas. le code de l'appel est alors:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 my $ServiceCriteres = $serviceRoot->getElementsByTagName('criteres')->item(0)->getElementsByTagName('regexp'); $self->criteres($ServiceCriteres);Je n'arrive plus a acceder au contenu de ma liste à l'exterieur de la methode criteres... Comment me sortir proprement de ce problème SVP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 my $service = Service->new($serviceRoot); foreach my $i ( 0 .. $#{$service->criteres} ) { print $service->criteres [$i] , "\n";}
Merci de votre aide !!!
Partager