#!/usr/bin/perl -w use locale; #ouverture d'un fichier en position 0 dans cygwin béta 20, référencé ensuite par FILE open (FILE,"$ARGV[0]"); #On crée un compteur $i et on l'initialise à 0 my $i=0; # il s'agit d'un tableau vide appelé "tableau_des_bebes " %tableau_des_bebes=(); #------------------------------------------------------------- # Parcours du fichier #--------------------------------------------------------------- # tant que je peux lire les lignes du fichier, je le fais. La condition de la boucle étant rempli, on rentre à l'intérieur du bloc d'instruction while ($ligne=){ #Si dans la ligne, il y a le motif recherché alors on prend le motif de $1 qui est ([0-9]+) et on le met dans une variable appelé infirmiere #Le motif recherché est contact suivi de n'importe quel caractère jusqu'à la balise infirmière et qui est juste suivi d'un chiffre ) if ($ligne=~/contact.*([0-9]+)/) { $bebe=$1; #Si la variable bebe existe dans le tableau _des_bebes alors on incrémente le tableau if (exists($tableau_des_bebes{$bebe})){ $tableau_des_bebes{$bebe}++; } #sinon on cree un nouvelle clé dans le tableau et on lui associe la valeur 1 else{ $tableau_des_bebes{$bebe}=1; # et le tableau_des_bebes va être incrémenté , aussi. $i=$i+1; } } } # on ferme le fichier en lecture close (FILE); #------------------------------------------------------ # On imprime les resultats : #------------------------------------------------------ #ouverture d'un fichier en écriture, si ce fichier existait auparavant : l'ancien contenu est écrasé. #ce fichier s'appelle "bebe.txt" #Dans le fichier résultat: on aura 2 types d'informations: 1) le nb de bébés pour lesquel on parle de "contact ", 2) on cite tous les bébés pour lesquels on parle de contact( par exemple bébé 2, bébé 6...) et on dit à côté de cela , le nombre de fois que le mot contact apparait dans chaque bébé. open (OUT,">bebe.txt"); #on affiche le résultat avec la commande print . On indique donc l'information 1) print OUT "\n il y a $i bebe pour lesquels on parle de contact\n"; # pour chaque clé du "tableau_des_bebes", on affiche le résultat de chaque clé du tableau. On indique donc l'information 2) foreach my $cle (keys %tableau_des_bebes) { print OUT "$cle : $tableau_des_bebes{$cle} \n"; } #on feme le fichier en sortie close(OUT);