[couverture de Linux Magazine 78]

Perles de Mongueurs (18)

Article publié dans Linux Magazine 78, décembre 2005.

[+ del.icio.us] [+ Developers Zone] [+ Bookmarks.fr] [Digg this] [+ My Yahoo!]

La perle de ce mois-ci a été rédigée par Emmanuel Di Prétoro <manu@bjornoya.net>, un habitué du canal #perlfr (serveur irc.mongueurs.net).

Un moteur de recherche pour votre documentation Perl

Introduction

Peut-être vous êtes vous déjà retrouvés dans la situation de devoir rechercher des informations sur un sujet particulier. Vous êtes donc allés sur votre moteur de recherche préféré, et saisi votre requête. Et en consultant les résultats de recherche, vous vous êtes rendu compte que la majorité des modules répondant à votre question étaient déjà installés sur votre machine. Il aurait donc été utile de pouvoir en premier lieu interroger un moteur de recherche local pour votre documentation Perl. Et bien, ce moteur de recherche existe déjà, et il est l'œuvre d'Ulrich Pfeifer, et se nomme tout naturellement perlindex. Ce dernier est bien entendu disponible sur le CPAN, à l'adresse suivante http://search.cpan.org/dist/perlindex/.

Installation

Après avoir installé ce script (avec l'incantation classique perl Makefile.PL, make test, make install), il est nécessaire de construire l'index. Pour cela, il suffit de taper, en tant que root la commande suivante perlindex -index. Cette commande va parcourir les répertoires où se trouve la documentation et en indexer les fichiers .pm et .pod.

Utilisation

L'utilisation classique de ce programme est donc l'interrogation, qui s'effectue en passant les mots-clés en argument au programme. Ainsi, si je souhaite trouver un moyen d'obtenir le texte d'un fichier HTML, je peux interroger le système de la manière suivante perlindex strip tag html. Cela nous donne l'écran suivant :

  $ perlindex strip tag html
  1  5.454 share/perl5/HTML/TokeParser/Simple.pm
  2  4.051 share/perl5/HTML/LinkExtractor.pm
  3  4.034 share/perl5/HTML/TokeParser/Simple/Token/Tag/Start.pm
  4  4.034 share/perl5/HTML/TokeParser/Simple/Token/Tag/End.pm
  5  4.017 share/perl5/HTML/Tree/Scanning.pod
  6  3.867 share/perl5/HTML/TokeParser/Simple/Token/Tag.pm
  7  3.562 share/perl5/HTML/TreeBuilder.pm
  8  3.316 bin/dh_strip
  9  3.282 share/perl5/MARC/File/USMARC.pm
  a  3.282 share/perl5/Mail/Header.pm
  b  3.191 share/perl5/HTML/TokeParser/Simple/Token/Text.pm
  c  3.093 share/perl5/HTTP/Proxy/BodyFilter/tags.pm
  d  2.856 share/perl5/HTML/Parse.pm
  e  2.841 share/perl5/HTML/Tagset.pm
  f  2.770 share/perl5/HTML/TokeParser/Simple/Token/ProcessInstruction.pm

  Enter Number or 'q'>

Et en consultant la documentation du premier module, donc, HTML::TokeParser::Simple, j'obtiens un exemple sur la manière de procéder.

Comme vous pouvez le constater, les résultats sont classés en fonction de leur pertinence (utilisation du TF-IDF, Term Frequency - Inverse Document Frequency, classique dans le domaine de l'information retrieval).

Autres options du programme

Les options suivantes sont également disponibles, bien que non documentées par le programme :

Conclusion

Ce programme n'est pas parfait, mais il est d'une aide certaine lorsqu'il s'agit de se débrouiller avec ce que l'on a. Il m'est souvent bien utile pour retrouver la bonne page dans toute la documentation disponible.

À vous !

Envoyez vos perles à perles@mongueurs.net, elles seront peut-être publiées dans un prochain numéro de Linux Magazine.

[IE7, par Dean Edwards] [Validation du HTML] [Validation du CSS]