#!/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 (<FILE>)
    {
	# 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;
}
