NOM

perlfaq2 - Trouver et apprendre Perl (Revision: 1.30, Date: 1998/12/29 19:43:32)


DESCRIPTION

Cette section de la FAQ vous permettra de trouver les sources et la documentation de Perl ainsi que de l'aide et autres choses similaires.


Quelles machines supportent Perl ? Où puis-je trouver Perl ?

La version standard de Perl (celle maintenue par l'équipe de développement de perl) est distribuée uniquement sous forme de code source. Vous pouvez la trouver sur http://www.perl.com/CPAN/src/latest.tar.gz sous un format standard d'Internet (une archive gzippée au format tar POSIX).

Perl se compile et fonctionne sur un nombre ahurissant de plates-formes. Quasiment tous les dérivés actuels et connus d'Unix sont supportés ainsi que des systèmes propriétaires comme VMS, DOS, OS/2, Windows, QNX, BeOS et Amiga. Il y a aussi un début de support pour MPE/iX.

Des distributions binaires pour quelques plates-formes propriétaires comme les systèmes Apple sont disponibles dans le répertoire http://www.perl.com/CPAN/ports/ . Comme elles ne font pas partie de la distribution standard, elles peuvent différer (et diffèrent de fait) de la version de base de Perl sur plusieurs points. Pour connaître les différences, vous devrez lire leurs notes respectives d'exploitation (release notes). Ces différences peuvent être des plus (par ex. des extensions pour des fonctionnalités spécifiques à une plate-forme qui ne sont pas supportées par la version source de perl) ou des moins (par ex. peuvent être basées sur de vieilles versions des sources perl).


Comment trouver une version binaire de Perl ?

Si vous n'avez pas de compilateur C parce que par exemple votre vendeur n'en fournit pas sur votre système, la meilleur chose à faire est de récupérer une version binaire de gcc depuis Internet et de l'utiliser pour compiler perl. CPAN ne fournit de versions binaires que pour les systèmes pour lesquels il est très difficile de trouver des compilateurs gratuits, mais pas pour les systèmes Unix.

Quelques URL qui devraient vous aider :

    http://language.perl.com/info/software.html
    http://www.perl.com/latest/
    http://www.perl.com/CPAN/ports/

si vous voulez des informations sur les systèmes propriétaires. Un guide d'installation simple existe pour MS-DOS à http://www.cs.ruu.nl/~piet/perl5dos.html ainsi que pour Windows 3.1 à http://www.cs.ruu.nl/~piet/perlwin3.html .


Je n'ai pas de compilateur C sur mon système. Comment puis-je compiler perl ?

Si vous n'avez pas de compilateur C, vous êtes maudits et votre vendeur devrait être sacrifié aux dieux du soleil (Sun). Mais cela ne vous aidera pas beaucoup.

Il vous faut trouver une distribution binaire de gcc pour votre système. Pour savoir où la trouver, consultez les FAQs Usenet concernant votre système d'exploitation.


J'ai copié le binaire Perl d'une machine sur une autre mais les scripts ne fonctionnent pas.

Vous avez probablement oublié les bibliothèques ou alors les chemins d'accès diffèrent. Vous devriez plutôt installer toute la distribution sur la machine finale et tapez make install. La plupart des autres méthodes sont vouées à l'échec.

Pour vérifier que tout est installé au bon endroit, il suffit d'afficher la valeur hard-codée de @INC que perl utilise :

        % perl -e 'print join("\n",@INC)'

Si cette commande liste des répertoires qui n'existent pas sur votre système, vous devrez les créer et y placer les bibliothèques ou alors y créer des liens symboliques, des alias ou des raccourcis de manière appropriée. @INC est aussi affiché lors de la sortie de :

        % perl -V

Vous pouvez aussi consulter How do I keep my own module/library directory?.


J'ai récupéré les sources et j'essaie de les compiler mais gdbm/dynamic loading/malloc/linking/... échoue. Comment faire pour que ça marche ?

Lisez le fichier INSTALL qui est dans la distribution source. Il décrit en détail comment se débrouiller avec la plupart des particularités d'un système ou d'une architecture pour lesquelles le script Configure ne peut pas s'en sortir.


Quels sont les modules et extensions qui existent pour Perl ? Qu'est-ce que CPAN ? Que signifie CPAN/src/... ?

CPAN signifie Comprehensive Perl Archive Network (Réseau complet d'archives Perl). C'est une énorme archive dupliquée sur une douzaine de machines à travers le monde. CPAN contient du code source, des portages non natifs, des documentations, des scripts et plein de modules et/ou extensions de tierces parties adaptés à tout depuis des interfaces pour des bases de données commerciales jusqu'au contrôle fin du clavier ou de l'écran en passant par des scripts CGI ou de l'exploration du WEB. La machine de référence pour CPAN est ftp://ftp.funet.fi/pub/languages/perl/CPAN/ mais vous pouvez utiliser l'adresse http://www.perl.com/CPAN/CPAN.html pour accéder à une copie ``proche de vous''. Voir http://www.perl.com/CPAN (sans le slash final !) pour savoir comment ça fonctionne.

CPAN/chemin/... est une convention pour nommer des fichiers disponibles sur les sites CPAN. CPAN désigne le répertoire de base d'un miroir CPAN et le reste du chemin est celui depuis ce répertoire jusqu'au fichier lui-même. Par exemple, si vous utilisez ftp://ftp.funet.fi/pub/languages/perl/CPAN comme site CPAN, le fichier CPAN/misc/japh est téléchargeable à ftp://ftp.funet.fi/pub/languages/perl/CPAN/misc/japh .

Sachant qu'il existe des centaines de modules dans l'archive, il en existe certainement un qui fait presque ce à quoi vous pensez. Les catégories actuelles disponibles dans CPAN/modules/by-category/ sont entre autres: perl core modules (modules perl de base) ; development support (aide au développement) ; operating system interfaces (interfaces avec le système d'exploitation) ; networking, devices, and interprocess communication (réseaux, devices et communication inter-process) ; data type utilities (utilitaires de type de donnée) ; database interfaces (interfaces avec les bases de données) ; user interfaces (interfaces utilisateur) ; interfaces to other languages (interfaces avec d'autres langages) ; filenames, file systems, and file locking (noms de fichiers, systèmes de fichiers et verrouillage de fichiers) ; internationalization and locale (internationalisation et locale) ; world wide web support (aide pour le WEB) ; server and daemon utilities (utilitaires serveur et démon) ; archiving and compression (archivages et compression) ; image manipulation (traitement d'images) ; mail and news (messagerie électronique et groupe de discussion) ; control flow utilities (utilitaires de contrôle de flux) ; filehandle and I/O (filehandle et entrée/sortie (I/O)) ; Microsoft Windows modules (modules Microsoft Windows) ; miscellaneous modules (modules divers).


Existe-t-il une version de Perl certifiée ISO ou ANSI ?

Sûrement pas. Larry estime qu'il sera déclaré malade (NDT : jeu de mot sur certified) avant que Perl ne le soit.


Où puis-je trouver des informations sur Perl ?

La documentation complète de Perl est contenue dans la distribution de perl. Si vous avez installé perl, vous avez probablement installé la documentation en même temps : tapez man perl si vous êtes sur un système ressemblant à Unix. Cela vous amènera vers d'autres pages importantes du manuel et entre autres celles indiquant comment fixer votre variable $MANPATH. Si vous n'êtes pas sur un système Unix, l'accès pourra être différent. Il est possible, par exemple, que la documentation n'existe qu'au format HTML. Mais en tout état de cause, une distribution perl correcte fournit une documentation complète.

Vous pouvez aussi essayer perldoc perl si votre système ne possède pas de commande man ou si elle est mal installée. Si ça ne fonctionne pas, regardez dans /usr/local/lib/perl5/pod pour trouver de la documentation.

Si tout cela échoue, consultez directement le répertoire CPAN/doc qui contient la documentation complète dans de nombreux formats comme pod natif, troff, html et texte brut. Il existe aussi une page WEB à http://www.perl.com/perl/info/documentation.html .

De nombreux ouvrages de qualité existent pour Perl -- voir plus loin pour de plus amples informations.

Des tutoriels sont inclus dans les versions actuelles ou à venir de Perl. Per exemple la page de manuel perltoot pour les objets, perlopentut pour la sémantique de l'ouverture de fichiers, perlreftut pour gérer les références et la page de manuel perlxstut pour lier C et Perl ensemble. Les URL suivants peuvent aussi vous servir :

    http://language.perl.com/info/documentation.html
    http://reference.perl.com/query.cgi?tutorials


Quels sont les groupes de discussion concernant Perl sur USENET ? Où puis-je poser mes questions ?

La regretté groupe comp.lang.perl est maintenant découpé en :

    comp.lang.perl.announce             Moderated announcement group
                                        (Groupe modéré d'annonce)
    comp.lang.perl.misc                 Very busy group about Perl in general
                                        (Groupe très actif sur Perl en général)
    comp.lang.perl.moderated            Moderated discussion group
                                        (Groupe modéré de discussion)
    comp.lang.perl.modules              Use and development of Perl modules
                                        (Utilisation et développement de modules Perl)
    comp.lang.perl.tk                   Using Tk (and X) from Perl
                                        (Utilisation de Tk (et X) depuis Perl)

    comp.infosystems.www.authoring.cgi  Writing CGI scripts for the Web.
                                        (Écriture de scripts CGI pour le WEB)

(NDT : citons aussi pour les francophones :

     fr.comp.lang.perl                  Langage de programmation Perl.)

Il existe aussi une passerelle USENET vers la mailing liste utilisée par l'équipe de développement de Perl (perl5-porters) : news://news.perl.com/perl.porters-gw/ .


Où puis-je poster mon code source ?

Vous devriez poster votre code source dans le groupes de discussion le plus approprié mais vous pouvez aussi le cross-poster vers comp.lang.perl.misc. Si vous voulez cross-poster vers alt.sources, vérifiez que vous respectez les règles de ce groupe... En particulier l'en-tête Followup-To ne doit PAS contenir alt.sources; voir leur FAQ (http://www.faqs.org/faqs/alt-sources-intro/) pour plus de détails.

Si vous cherchez des logiciels, utilisez tout d'abord Alta Vista ou Deja News et cherchez dans CPAN. C'est plus rapide et plus productif que de de poser une question dans un groupe de discussion.


Les livres sur Perl

Il existe de nombreux livres sur Perl et/ou la programmation de CGI. Quelques-uns sont bons, d'autres corrects mais beaucoup ne valent rien ou pas grand chose. Tom Christiansen tient à jour une liste de ces livres avec parfois des notes de lecture : http://www.perl.com/perl/critiques/index.html .

Le livre de référence incontestable sur Perl, écrit par le créateur de Perl et qui en est maintenant à sa seconde édition est :

    Programming Perl (the "Camel Book"):
        par Larry Wall, Tom Christiansen et Randal Schwartz
        ISBN 1-56592-149-6      (English)
        ISBN 4-89052-384-7      (Japanese)
        URL: http://www.oreilly.com/catalog/pperl2/
    (Existe aussi en français, allemand, italien et hongrois)

(NDT : Version française :

        Programmation en Perl 2e édition
        Larry Wall, Tom Christiansen & Randal L. Schwartz
        Décembre 1996
        ISBN : 2-84177-004-4 )

Le compagnon idéal du ``Camel Book'' contient des milliers d'exemples réels, de mini-guides et de programmes complets (première présentation à la Perl Conference 1998) :

    The Perl Cookbook (the "Ram Book"):
        par Tom Christiansen et Nathan Torkington, 
                    avant-propos de Larry Wall
        ISBN: 1-56592-243-3
        URL:  http://perl.oreilly.com/cookbook/

Si vous êtes déjà un programmeur système endurci alors le ``Camel Book'' devrait vous suffire pour apprendre Perl. Sinon, regardez :

    Learning Perl (the "Llama Book"):
        par Randal Schwartz and Tom Christiansen 
                    avant-propos de Larry Wall
        ISBN: 1-56592-284-0
        URL:  http://www.oreilly.com/catalog/lperl2/

(NDT : Version française :

        Introduction à Perl, 2e édition
 
        Randal L. Schwartz et Tom Christiansen, préface de Larry Wall
        2e édition, février 1998
        ISBN : 2-84177-041-9 )

Contrairement à l'image présentée à l'URL ci-dessus, la seconde édition du ``Llama Book'' est bleue et a été mise à jour pour la version 5.004 de Perl. Plusieurs adaptations sont disponibles, entre autres Learning Perl on Win32 Systems (le ``Gecko Book'').

Si vous n'êtes pas un programmeur occasionnel mais plutôt un programmeur confirmé voir même un informaticien de haut niveau qui n'a pas besoin d'un accompagnement pas à pas comme celui que nous proposons dans le ``Llama Book'' ou son cousin le ``Gecko Book'', vous pouvez regarder du côté du merveilleux ouvrage Perl: The Programmer's Companion écrit par Nigel Chapman.

Vous pouvez commander les livres O'Reilly directement chez O'Reilly & Associates, 1-800-998-9938. Pour l'étranger: 1-707-829-0515. Si vous pouvez trouver un bon de commande O'Reilly, vous pouvez aussi le faxer au 1-707-829-0104. Consultez aussi http://www.ora.com/ sur le WEB.

(NDT : Les livres en anglais et en français sont diffusés en France et dans les pays francophones (excepté au Canada) par :

    GEODIF 
    61 boulevard Saint-Germain
    75240 Paris Cedex 05
    FRANCE 
    Adresse électronique : distribution@eyrolles.com 
    Tél. : 01 44 41 46 16 (étranger : +33 1 44 41 46 16) 
    Fax : 01 44 41 11 44 (étranger : +33 1 44 41 11 44) 

Au Canada :

    Les Éditions Flammarion ltée
    375, avenue Laurier Ouest
    Montréal (Québec) H2V 2K3
    Adresse électronique : Frédéric Bernier fbernier@flammarion.qc.ca 
    Tél. : (514) 277-8807 
    Fax : (514) 278-2085 

Pour les francophones, consulter : http://www.editions-oreilly.fr/ )

Ce qui suit est une liste de livres que les auteurs de la FAQ ont trouvés personnellement utiles. Votre avis peut être différent.

Voici les livres recommandés sur (ou principalement sur) Perl. Ceux marqués d'une étoile sont commandables chez O'Reilly.

References (Références)

    *Programming Perl
        par Larry Wall, Tom Christiansen et Randal L. Schwartz

    *Perl 5 Desktop Reference
        par Johan Vromans
Tutorials (Guides d'apprentissage)

    *Learning Perl [2nd edition]
        par Randal L. Schwartz et Tom Christiansen
            avant-propos de Larry Wall

    *Learning Perl on Win32 Systems
        par Randal L. Schwartz, Erik Olson et Tom Christiansen,
            avant-propos de Larry Wall

    Perl: The Programmer's Companion
        par Nigel Chapman

    Cross-Platform Perl 
        par Eric F. Johnson

    MacPerl: Power and Ease 
        par Vicki Brown et Chris Nandor
             avant-propos de Matthias Neeracher
Task-Oriented (Orientations plus pratique)

    *The Perl Cookbook
        par Tom Christiansen et Nathan Torkington
            avant-propos de Larry Wall

    Perl5 Interactive Course [2nd edition]
        par Jon Orwant

    *Advanced Perl Programming 
        par Sriram Srinivasan

    Effective Perl Programming 
        par Joseph Hall
Special Topics (Sujets spéciaux)

    *Mastering Regular Expressions
        par Jeffrey Friedl

    How to Set up and Maintain a World Wide Web Site [2nd edition]
        par Lincoln Stein

(NDT: un certain nombre de ces ouvrages existent sûrement en français. Si vous en connaissez les références exactes, n'hésitez pas à les envoyer au traducteur de cette FAQ.)


Les magazines sur Perl

Le premier et le seul périodique dédié à Perl est The Perl Journal (TPJ). Il propose des guides, des démonstrations, des études de cas, des annonces, des concours et plein d'autres choses encore. Des rubriques du TPJ concernent le développement WEB, les bases de données, Perl sur Win32, la programmation graphique, les expressions régulières et les réseaux. Le TPJ sponsorise le Obfuscated Perl Contest (le concours de Perl Obscur). Il est publié trimestriellement par son éditeur, Jon Orwant. Voir http://www.tpj.com/ ou envoyer un mail à subscriptions@tpj.com .

À part cela, d'autres magazines proposent souvent des articles de haut niveau sur Perl. Parmi eux: Web Techniques (voir http://www.webtechniques.com/), Performance Computing (http://www.performance-computing.com/) et la lettre/magazine de Usenix à ses membres, ;login:, à http://www.usenix.org/ . La rubrique de Randal concernant les techniques WEB est disponible sur le WEB à http://www.stonehenge.com/merlyn/WebTechniques/ .


Perl sur Internet : accès via FTP et WWW

Pour obtenir les meilleures performances (et peut-être les moins chères), choisissez un site dans la liste ci-dessous et allez y récupérer la liste complète des sites miroirs. Souvenez-vous : cette liste n'est pas la liste complète des sites miroirs de CPAN.

  http://www.perl.com/CPAN-local
  http://www.perl.com/CPAN      (redirection automatique vers un autre miroir)
  http://www.perl.org/CPAN
  ftp://ftp.funet.fi/pub/languages/perl/CPAN/
  http://www.cs.ruu.nl/pub/PERL/CPAN/
  ftp://ftp.cs.colorado.edu/pub/perl/CPAN/


Quelles sont les mailing listes concernant perl ?

La plupart des modules importants (Tk, CGI, libwww-perl) ont leur propre mailing liste. Lisez la documentation accompagnant ces modules pour connaître la méthode d'inscription. Le Perl Institute essaie de tenir à jour une liste des mailing listes à :

        http://www.perl.org/maillist.html


Archives de comp.lang.perl.misc

Avez-vous déjà consulté Deja News ou Alta Vista ? Ce sont les meilleures archives. Recherchez simplement ``*perl*'' comme newsgroup.

    http://www.dejanews.com/dnquery.xp?QRY=&;DBS=2&ST=PS&defaultOp=AND&LNG=ALL&format=terse&showsort=date&maxhits=25&subjects=&groups=*perl*&authors=&fromdate=&todate=

Vous voudrez sans doute adapater cela un peu...

ftp.cis.ufl.edu:/pub/perl/comp.lang.perl.*/monthly propose une archive presque complète débutant de décembre 1989 (il manque la période de août 1991 à décembre 1993). Ils conservent un gros fichier pour chaque mois.

Vous préféreriez certainement un mécanisme de requête et de recherche plus sophistiqué qu'une simple liste de fichiers. Par exemple, un mécanisme qui permet un accès rapide indexé au minimum par l'auteur, la date, le sujet, l'enfilade et aussi probablement des mots clés. La meilleure solution que les auteurs de la FAQ connaissent est la commande pick de MH mais elle est très lente pour une sélection parmi 18000 articles.

Si vous avez des suggestions ou connaissez d'autres solutions, écrivez à perlfaq-suggestions@perl.com.


Où puis-je acheter une version commerciale de Perl ?

D'un certain point de vue, Perl est déjà un logiciel commercial : il possède une licence que vous pouvez récupérer et faire lire à votre chef. Il est utilisé par de très nombreux personnes et il existe énormément de livres le concernant. Il est distribué sous forme de versions avec des packages clairement définis. Les groupes de discussion compl.lang.perl.* et plusieurs mailing listes fournissent gratuitement des réponses à vos questions et ce quasiment en temps réel. Le support de Perl est traditionnellement assuré par Larry, des dizaines de développeurs et des milliers de programmeurs. Tous travaillent gratuitement pour créer quelque chose permettant de rendre la vie plus facile à tous.

Cependant, cette réponse peut ne pas suffire aux gestionnaires qui réclament un bon de livraison provenant d'une entreprise qu'ils pourraient poursuivre en justice en cas de problème. Ou peut-être ont-ils besoin d'un vrai support avec des obligations contractuelles. Il existe des CD commerciaux contenant perl si cela peut aider.

Vous pouvez aussi trouver de vrais contrats d'assistance. Historiquement, c'était Cygnus qui assurait ce service. Mais ils ne le font plus pour Perl. À la place, le Paul Ingram Group a repris le flambeau via The Perl Clinic. Voici leur offre (NDT : inutile de traduire puisqu'il vous faudra comprendre l'anglais pour contracter avec eux... :-)

``Do you need professional support for Perl and/or Oraperl? Do you need a support contract with defined levels of service? Do you want to pay only for what you need?''

``The Paul Ingram Group has provided quality software development and support services to some of the world's largest corporations for ten years. We are now offering the same quality support services for Perl at The Perl Clinic. This service is led by Tim Bunce, an active perl porter since 1994 and well known as the author and maintainer of the DBI, DBD::Oracle, and Oraperl modules and author/co-maintainer of The Perl 5 Module List. We also offer Oracle users support for Perl5 Oraperl and related modules (which Oracle is planning to ship as part of Oracle Web Server 3). 20% of the profit from our Perl support work will be donated to The Perl Institute.''

Pour de plus amples informations, contactez The Perl Clinic:

    Tel:    +44 1483 424424
    Fax:    +44 1483 419419
    Web:    http://www.perl.co.uk/
    Email:  perl-support-info@perl.co.uk ou Tim.Bunce@ig.co.uk

Regarder aussi www.perl.com pour des mises à jour concernant les tutoriels, la formation et l'assistance.


Où dois-je poster mes rapports de bugs ?

Si vous avez trouvé un bug dans l'interpréteur perl ou dans les modules fournis avec perl, utilisez le programme perlbug fourni dans la distribution ou envoyez un mail à perlbug@perl.com.

Si votre bug concerne un portage non-standard (voir la question Quelles machines supportent Perl ?), une distribution binaire ou un module non-standard (tel que Tk, CGI, etc.) alors veuillez consultez leur propre documentation pour déterminer le moyen exact d'envoyer votre rapport.

Lisez la page du manuel perlbug(1) (perl5.004 ou plus) plus plus de détails.


Qu'est-ce que perl.com ?

Le domaine perl.com appartient à Tom Christiansen qui l'a créé comme un service public bien avant que perl.org existe. Malgré son nom, ce domaine est non commercial et est le lieu central pour toutes les informations concernant Perl. Ses pages ne contiennent ni annonces commerciales, ni belles images GIF, ni applets java inutiles. La page d'accueil Perl à http://www.perl.com/ est actuellement reliée par une liaison T3 fournie gracieusement par Songline Systems, une filiale informatique de O'Reilly and Associates. Les autres sources d'informations peuvent être retrouvées à :

    http://language.perl.com/
    http://conference.perl.com/
    http://reference.perl.com/
    http://www.enstimac.fr/Perl/ (en français)


AUTEUR ET COPYRIGHT

Copyright (c) 1997-1999 Tom Christiansen et Nathan Torkington. Tous droits réservés.

Lorsque ce travail est inclus comme un élément de la distribution standard de Perl ou comme une partie de sa documentation complète sous forme imprimée ou autrement, il ne peut être distribué que dans les limites fixées par la Perl's Artistic License. Toute distribution de ce fichier ou de ses dérivés hors de cet ensemble nécessite un accord particulier avec le titulaire des droits (voir la page de manuel perlfaq).

Indépendemment de sa distribution, tous les exemples de code de ce fichier sont ici placés dans le domaine public. Vous êtes autorisés et encouragés à utiliser ce code dans vos programmes que ce soit pour votre plaisir ou pour un profit. Un simple commentaire dans le code en précisant l'origine serait de bonne courtoisie mais n'est pas obligatoire.


TRADUCTION

Paul Gaborit (Paul.Gaborit@enstimac.fr)

La traduction française est distribuée avec les même droits que sa version originale (voir ci-dessus).


RELECTURE

Pascal Ethvignot (pascal@encelade.frmug.org)