#!/usr/bin/perl

# script qui affiche les nombres d'occurences des mots d'un fichier texte, en ordre croissant
$fichier_texte = shift;

open(TEXT, "<$fichier_texte");

while (<TEXT>) {
	s/[.,"';:!?]//g;
	# supprimer les caractères de ponctuation
	lc;
	# mettre tout en minuscules
	@mots = split;
	# mettre les mots de la ligne dans le vecteur @mots
	foreach (@mots) {
	# parcourir le vecteur ($_ = le mot)
		$mots{$_}++;
		# incrémenter le compteur du hash %mots pour la clé = le mot
	}
}
print "Le fichier \"$fichier_texte\" contient : \"Nombre d'occurences\" : \"Mots\"  :\n";

foreach (sort keys %mots) {
	 push (@occurences, "$mots{$_}\t: $_\n");
	# mettre les lignes d'affichage dans le vecteur @occurences
}

foreach (sort {$a <=> $b} @occurences) {
# trier en odre croissant (des nombres d'occurences) pour l'affichage
# l'option {$a <=> $b} fait que le tri (sort) se fait en ordre numérique
# au lieu de l'ordre lexical (alphabétique), qui est le tri par défaut
	 print;
}
