Bonjour,

Je souhaite tester si tous les mots d'un fichier existent dans un deuxième fichier.
J'ai inséré tous les mots de chaque fichier dans un tableau.

1er fichier:

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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
open $fic,'<',$dico or die "fichier non ouvert\n";
# je stocke les mots du dictionnaire dans un tableau
while (<$fic>) {
  for $e(split){
    $e=~s/ //g;
    push @dico_words,$e;
  }
}
close $fic;
 
@que_dans_dico{@dico_words}=();
 
2eme fichier:
open ARA, "".$mytrad."" or die "$mytrad does not exist";
 
@allMots=();
while ($line =<ARA>) {
	$line=~s/\n//g;
	@mots = split (/ /,$line);
 
	foreach $mot (@mots){
		push(@allMots,$mot);
	}
 
}
close ARA;
 
print "mots qui n'existent pas \n";
 
foreach $mot(@allMots){
	if ( grep( /^$mot$/,@dico_words ) ) {
	   print "Matched $mot\n";
	} else {
	   print "Not Matched $mot\n";
	}
 
}
J'ai utilisé grep mais c'est une fonction lourde.. en plus elle ne m'affiche pas les mots contenant certains caracteres comme le $ par exemple..

Est ce que qq'un a une meilleure idée de recherche de mots d'un fichier dans un autre fichier?

Merci