File "compte01.pl"
Full Path: /home/analogde/www/Tableau/andre/PERL/compte01.pl
File size: 1.04 KB
MIME-type: text/x-perl
Charset: 8 bit
#!/usr/bin/perl -w
# compter le nombre d'occurences de chaque mot d'un texte
# => utiliser un tableau associatif index par les mots
# compter le nombre de mots diffrents
# => nombre de cases du tableau
# compter le nombre total de mots
# => solution bis :
# compter ce total au fur et mesure de la lecture
my %tab_words = ();
my $nb_words = 0;
# lit chaque ligne du texte
# et remplit le tableau d'occ
# et calcule le nb total de mots
while (<>) {
chomp;
my @ligne = split;
# ajoute les mots de la ligne courante
$nb_words += $#ligne + 1;
foreach $i (@ligne) {
# ajoute 1 au nb d'occ du mot $i
$tab_words{$i}++;
}
}
# affiche tout le tableau associatif d'occ
print "Nombre d'occurences de chaque mot :\n";
while (($word,$nb) = each(%tab_words)) {
# print $word, " ", $nb, "\n";
printf "%3d %s\n", $nb, $word;
}
# nb mots differents = nb cases tableau
my @listk = keys(%tab_words);
my $nb_unique_words = $#listk +1;
print "Nb total mots : ", $nb_words, "\n";
print "Nb mots diffrents : ", $nb_unique_words, "\n";