Bonjour,

J'ai un pb dans mon code.
Il fonctionne mais il me donne toujours la même réponse en fonction du mot que j'ai entré en premier.

par exemple: si j'entre "communication" (il se trouve bien dans le texte)
il m'indique : le mot apparait aux lignes..."

ensuite j'entre "bonjour" (il ne se trouve pas dans le texte)
mais il m'indique quand meme : "le mot apparait aux lignes..."

Inversément, si j'écris "bonjour"
il indique : mot introuvable
ensuite, j'écris "communication"
il indique "mot introuvable".

Est-ce que vous voyez ou se situe le pb?
Merci

Voici mon code :

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#============================================================
#Script = distributiontexte.pl                              =
#Date = 30/03/2010                                          =
#Ce script indique à quelle(s) ligne(s) apparait            =
#le mot indique par l'utilisateur sur x nombres de lignes   =
#au total.													= 
#Ce script prend en compte deux arguments :                 =
# - 1 fichier avec le texte de litterature                  =
# - le mot indique par l'utilisateur                        =
#============================================================
 
 
use strict;
use warnings;
 
 
#########################################
#INITALISATION DES FICHIERS
#########################################
 
#Récupération du fichier
my $fichier_litterature = $ARGV[0]; 
 
open (LITTERATURE, "<","$fichier_litterature")
	|| die ("Impossible d'ouvrir $fichier_litterature");
 
my $ligne = "";
my $nb_ligne = 0;
my $mot_texte = 0;
my @litterature = ();
 
#########################################
#BOUCLE
#########################################
 
while (&entreunmot ()) {
	my $mot_utilisateur = <STDIN>;
	chomp ($mot_utilisateur);
 
		while ($ligne = <LITTERATURE>) {
 
			chomp ($ligne);
			$nb_ligne++;
 
			if ($ligne =~ /$mot_utilisateur/ig) {
				push (@litterature, $nb_ligne,",");
				$mot_texte++;
			}	
		}
 
#################################################
#FERMETURE DES FICHIERS ET AFFICHAGE DU RESULTAT
#################################################
 
	if ($mot_texte == 0) {
		print "Mot introuvable\n";
	}
 
	else {
		my $derniere_ligne = pop (@litterature) ;
		$derniere_ligne =~ s/,$// ;
		print "Ce mot apparait aux lignes @litterature $derniere_ligne sur $nb_ligne lignes\n";
	}
 
}
 
close(LITTERATURE);
 
#################################################
#FONCTION CREEE
#################################################
sub entreunmot {
	print "Entrez un mot:";
}