#!/usr/bin/perl -W # TP texte en perl # # Question III # solution partielle! # # Antoine Miné # 26/01/2007 die "$0: il faut un argument" unless $#ARGV>=0; # lit le fichier en entier dans $cont # cela permet de reconnaître des motifs à cheval sur plusieurs lignes # (non exploité actuellement...) open (FILE,$ARGV[0]) || die "$ARGV[0]: $!"; $cont=join "",; close FILE; # choisit le nom du fichier de sortie $OUT=$ARGV[1] || "$ARGV[0].html"; # échappe le HTML $cont =~ s/&/&/g; $cont =~ s//>/g; $cont =~ s/"/"/g; # met en italique quelques mots-clefs $cont =~ s!\b(for|while|do|if|else|break|continue|return|switch|case|default)\n!$1!g; # met en gras les types $cont =~ s!\b(unsigned|signed|char|short|int|long|float|double|void)\b!$1!g; $cont =~ s!\b((struct|enum|union)\s+\w+)\b!$1!g; # transforme les espaces et sauts de lignes en HTML $cont =~ s/\n/
\n/g; $cont =~ s/\r//g; $cont =~ s/ / /g; # affiche le résultat open OUT,">$OUT"; print OUT "$ARGV[0]\n"; print OUT "$cont\n"; close OUT;