BAO1

La récursivité

En examinant le répertoire racine des documents RSS, nous pouvons trouver que c'est comme des poupées russes : après avoir ouvert un répertoire, on en trouve d'autres et il faut les ouvrir, ensuite ouvrir les sous-répertoires qu'ils contiennent et ainsi de suite, jusqu'à ce que des fichiers soient trouvés.
Ce processus répétitif peut être réalisé par la récursivité en Perl.

Mais avant d'entrer dans le travail du traitement des fichier RSS, examinons un example mathématique. Pour calculer la factorielle d'un nombre n, on fait le produit (par ordre décroissant) de tous les nombres entiers strictement positifs inférieurs ou égaux à n. On répète donc la soustraction de 1 et la multiplication jusqu'à ce qu‘un facteur soit égal à 1.

Nous pouvons donc écrire un programme en Perl : recursive_factorial.pl

Dans le programme, on trouve que la subroutine factorielle appelle elle-même à son intérieur, avec des arguments différents. Ce qui constitue une récursivité.
Pour calculer la factorielle d'un nombre, il existe d'autres façons mais ici c'est pour illustrer l'utilisation de la récursivité en Perl.

La récursivité est la base de notre programme, sans laquelle nous ne pouvons pas trouver automatiquement les fichiers.

Expressions régulières

Pour extraire les contenus dont nous avons besoin, il y a deux façons en Perl. La première consiste à utiliser des expressions régulières.

En étudiant la structure des fichier RSS, nous pouvons constater que ce dont nous avons besoin se trouve entre certaines balises.

<item>.*?<title>([^<]*?)<\/title>.*?<description>([^<]*?)<\/description>.*?<\/item>

On extrait les parties entourées de parenthèses et les appelle en tapant $ plus nombre.

XML::RSS

XML::RSS est une module en Perl qui nous permet d'identifier plus facilement les balises dans un fichier RSS en XML. On crée des objets RSS et en extrait le titre et la description.

Scripts et produits