Git --projet-boite-à-outils

Code du filtreur

Consignes et code de base

Il était demandé de modifier le code suivant de façon à :

  • Extraire le contenu de la balise titre
  • Extraire le contenu de la balise description
  • Rendre le programme plus générique

Le code fourni était le suivant :

filtreur.pl
#!/usr/bin/perl
open(FILEINPUT,"$ARGV[0]");
while ($ligne = <FILEINPUT>){
    if ($ligne=~/REGEXP/) {
             print $ligne;
     }
}
close(FILEINPUT);

Modifications apportées

Le fichier RSS récupéré à des fins de test ne fait usage que d’un saut de ligne après la déclaration d’une feuille de style XSLT, en conséquence de quoi le code, qui est censé afficher les lignes où sont trouvées le motif désiré, va afficher une ou plusieurs fois le contenu entier du fichier. Il est donc modifié de façon à n’afficher sur la sortie que la partie matchée, et non la ligne entière.

En outre, comme les deux premières modifications demandées par le sujet sont des cas particuliers dans la troisième, elles sont étés sautées.
Le code est rendu plus générique en prenant en argument du script (second argument) le nom de la balise utilisée dans le motif à chercher.

filtreur-mod.pl
#!/usr/bin/perl

open(FILEINPUT,"$ARGV[0]");
my $tag = $ARGV[1];

while ($ligne = <FILEINPUT>){
if ($ligne=~/(<$tag>[^<]*<\/$tag>)/) {
             print $1;
     }
}
close(FILEINPUT);