# Problèmes de segmentation
	# Construction de dictionnaires : 
		# Construire un (ou plusieurs) programme(s) qui doit lire les corpus bébés et infirmières et construire pour chacun de ces corpus un dictionnaire contenant toutes les formes graphiques de ces corpus.
	
use locale;
open (FILEIN, "p96.bal"); 	# ouverture du fichier sur lequel on travaille en lecture
open (FILEOUT, ">dico.txt");	# ouverture du fichier (en écriture)  dans lequel apparaitra le dictionnaire créé
$i=1;	# initialisation d'un compteur
%dico=();	# ouverture d'un tableau de scalaires 
while ($ligne = <FILEIN>)	# tant que des lignes du fichier peuvent être lues, on le fait
	{
	# decouper $ligne en mots
	@mot = split (/[\W|\d]+/, $ligne); 	 # on transforme la variable $ligne en un tableau de valeurs, en mettant une chaine de caractères par cellule
	
	foreach my $mot (@mot) {
		
			if (exists($dico{$mot})) { # Si la ligne récupérée dans $recup existe dans le tableau des lignes. La fonction "exists" sert à interroger une clé du tableaudeslignes.
			$dico{$mot}++; # la fréquence de la ligne rencontrée augmente 
				}
				else { # sinon 
					$dico{$mot}=1; # il donne le numéro 1 à la fréquence de la ligne traitée
					$i++; # on ajoute 1 au i précédent
					}
		# on écrit dans le fichier de sortie pour avoir le dictionnaire à la fin 
			
	}	# fin de foreach
	}	# fin de while ($ligne)
close FILEIN;	# fermeture du fichier en lecture
foreach my $mot (keys %dico) { 	# cette boucle permet de parcourir les clés du dictionnaire puis de leur associées le mot correspondant
    print FILEOUT "$mot $dico{$mot} \n";	# on imprime le dictionnaires = les mots suivis de leurs clés
}
close FILEOUT;	# fermeture du fichier en sortie

  ## il faut absolument utiliser Cygwin Beta20 afin de ne plus avoir de problèmes avec les caractères accentuées.
  ## CygwinBeta20 reconnait mieux la bibliothèque "use locale" que Cygwin puisqu'on est sous Windows en Fraçais et que Cygwin est en anglais.