#!/usr/bin/perl -w #ouverture en local use locale; #ouverture d'un fichier en position 0 dans cygwin béta 20, référencé ensuite par FILE open (FILE, "$ARGV[0]"); #ouverture d'un fichier en écriture, si ce fichier existait auparavant : l'ancien contenu est écrasé. open (OUT, ">resultat.txt"); #tant qu'il y a quelque chose à lire dans le fichier, on le lit while ($ligne = ){ # si dans la ligne contient certains caractères, on fait du nettoyage if ($ligne=~/\w+/){ # nettoyage $ligne=~s/è/è/g; # nettoyage $ligne=~s/é/é/g; # nettoyage $ligne=~s/à/à/g; #On crée un tableau à partir de chaque ligne #puis on segmente celle-ci grâce à split. L'espace est pris comme séparateur @tableau=split(/ /,$ligne); # $#tableau donne l'indice du dernier élément.On lui ajoutant 1 car il part de la position 0. # $#tableau permet de savoir combien il y a d'éléments dans le tableau. L'indice est stocké dans la variable $compteur $compteur=$#tableau+1; # On affiche le résulat dans le fichier de sortie en disant le nombre de mots dans chaque phrase. print OUT "Il y a $compteur mots dans cette phrase\n"; #on essaye de calculer cette fois, le nombre de mots qu'il y a dans le fichier #la variable $grandcompteur permet de compter le nombre mots dans le texte #en effet, le nombre de mot dans chaque phrase est stocké dans la variable compteur #le grandcompteur va prendre toutes les valeurs de chaque ligne et va compter toutes ces valeurs pour donner le nombre total de mots dans le texte #on incrémente le grandcompteur avec les valeurs de chaque phrase $grandcompteur=$grandcompteur+$compteur; } } #on affiche le résultat dans le fichier de sortie en indiquant le nombre de mots dans le texte. print OUT "Il y a $grandcompteur mots dans ce texte"; # on ferme le fichier en lecture close(FILE); # on ferme le fichier en sortie close(OUT);