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:";
} |
Partager