Bonjour je débute en perl et j'aurais besoin de quelques conseils.
Je souhaite comparer deux listes et conserver les elements de ma premiere liste a condition qu'ils soient présents dans la deuxieme.
tout d'abord la forme du document que je dois traiter est la suivante
mot : synonyme1, synonyme2, ...
j'ai donc une premiere liste qui est composée de ma liste des synonymes
je l'obtient en faisant
après je met en place mes boucles
Code : Sélectionner tout - Visualiser dans une fenêtre à part ($mot, $syn)=spit( / : / , $_ );
Comme vous pouvez vous en doutez ca ne fonctionne pas aussi je ne vous demanderai pas de l'aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 open(DICO, $dico); while (<DICO>) foreach $VAR ($syn) { foreach $VAR1 ($liste2) { if($VAR1 eq $VAR) { push(@result, $VAR); } } } close (dico)
J'ai fait quelquie test est je remarque que $VAR ne me renvoie pas la premiere valeur de ma liste mais la liste complete
Alors que moi je souhaite tout d'abord regarder s'il la premiere valeur de ma liste syn appartient à la liste2 si c'est le cas j'ajoute a ma liste résultat sinon je passe au deuxieme element de ma liste syn.
Je susi a l'écoute de tous les conseils et je pense qu'une optimisation sera possible en utilisant la fonction grepau lieu de la seconde boucle foreach mais on verra ca apres
Partager