#!/usr/bin/perl -W # TP texte en perl # # Question I - 3 # basé sur la réponse cat1bis.pl # # Antoine Miné # 26/01/2007 # lit la ligne de commande foreach (@ARGV) { # mange les options if (/-n/ || /--number/) { $num=1; } elsif (/-E/ || /--show-ends/) { $end=1; } # le reste est un nom de fichier else { push @files,$_; } } # si pas de fichier, on prend l'entrée standard if ($#files==-1) { @files = ("-"); } # compteur de lignes $ligne=1; # corps du programme foreach $file (@files) { open (FILE,$file) or die "$file: $!"; while () { # supprime tous les types de sauts de lignes en fin de $_ # chop marcherait mal avec des fichier DOS... s/[\n\r]//g; # printf permet d'aligner les numéro de lignes à droite if ($num) { printf "%6i ",$ligne; } print; if ($end) { print '$'; } print "\n"; $ligne++; } close FILE; }