Bonjour,

Je dois crée un script PERL qui lit une liste de mots dans un fichier texte, et qui ensuite doit trouver dans un corpus de texte ces mots et leur donnée une etiquette ( Prenoms, Ville, Pays, ... ).

Ma liste de mots est bien forme dans mon ficher texte ( chaque mot est sur une ligne du ficher et il n'y a aucune repetition) cependant que je lance mon script il n'y a que 6 mots de reconnu alors que c'est mots (de la liste) vienne de ce corpus. Je ne comprend ou le script foiree

Voici mon script:
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
38
39
#!usr/bin/perl
open(LIRE2,"<ecrireQuestion2b.txt");
open(ECRIRE,">ecrireQuestion3.txt");
 
while(<LIRE2>)
{
	$_ =~ /([A-Z][a-z]+)\n/g;
	$gene{$_}++;	
}
 
close(LIRE2);
foreach $cle (keys %gene)
{
	$e=0;
	open(LIRE,"<lire2.txt");
 
	while(<LIRE>)
	{		
		if($_ =~ m/en $cle|aux $cle|le $cle|Le $cle|En $cle|Aux $cle|La $cle|la $cle|Les $cle|les $cle|du $cle|Du $cle|L'$cle|l'$cle/ && $e==0)
			{print ECRIRE ("$cle --> PRDC\n");
			$e=1;}
		elsif($_ =~ m/a $cle/ && $e==0)
			{print ECRIRE ("$cle --> PrVi\n");
			$e=1;}
		elsif($_ =~ m/de $cle|d'$cle/ && $e==0)
			{print ECRIRE ("$cle --> G0G2\n");
			$e=1;}
		elsif($_ =~ m/M. $cle|Mme $cle|Melle $cle|Mrs $cle|Dr. $cle|Monsieur $cle|Madame $cle|Mademoiselle $cle|Docteur $cle/ && $e==0)
			{print ECRIRE ("$cle --> NodF\n");
			$e=1;}
		elsif($e==0)
		{
		print ECRIRE ("$cle --> INCO\n");
		$e=1;}
 
	}
	close(LIRE);
}
close(ECRIRE);
Pourriez vous m'orienter svp??