#!/usr/bin/perl -W # TP texte en perl # # Question II - 1 # # Antoine Miné # 26/01/2007 $vide=1; # la dernière ligne était-elle vide ? while (<>) { # l'ordre est important! s/([(\[])\s*/ $1/g; # mange les espace après ( [ et ajoute-en un avant s/\s*([)\]])/$1 /g; # mange les espace avant ) ] et ajoute-en un après s/([;:!?])/ $1 /g; # ajoute un espace avant ; : ! ? s/\s*([.,])/$1 /g; # mange les espace avant , . et ajoute-en un après s/\s+/ /g; # mange les espaces multiples s/^\s*//g; # mange les espaces en début de ligne s/\s*$//g; # mange les espaces en fin de ligne # mange les lignes vides multiples next if ($vide==1 && $_ eq ""); $vide= $_ eq ""; # finalement, affiche la ligne-résultat print "$_\n"; }