.\" Automatically generated by Pod::Man 2.09 (Pod::Simple 3.04) .\" .\" Standard preamble: .\" ======================================================================== .de Sh \" Subsection heading .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. | will give a .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' .\" expand to `' in nroff, nothing in troff, for use with C<>. .tr \(*W-|\(bv\*(Tr .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .\" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .hy 0 .if n .na .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PERLFAQ1 1" .TH PERLFAQ1 1 "2006-04-11" "DocFr" "User Contributed Perl Documentation" .SH "NAME/NOM" .IX Header "NAME/NOM" perlfaq1 \- Questions d'ordre ge\*'ne\*'ral sur Perl ($Revision: 1.19 $, \f(CW$Date:\fR 2005/12/31 00:54:37 $) .SH "DESCRIPTION" .IX Header "DESCRIPTION" Cette section de la \s-1FAQ\s0 re\*'pond aux questions d'ordre ge\*'ne\*'ral et de haut niveau sur Perl. .Sh "Qu'est ce que Perl\ ?" .IX Subsection "Qu'est ce que Perl?" Perl est un langage de programmation de haut niveau avec un he\*'ritage e\*'clectique e\*'crit par Larry Wall et un bon millier de de\*'veloppeurs. Il de\*'rive de l'omnipre\*'sent langage C et, dans une moindre mesure, de Sed, Awk, du shell Unix et d'au moins une douzaine d'autres langages et outils. Son aisance a\*` manipuler les processus, les fichiers et le texte le rend particulie\*`rement bien adapte\*' aux ta\*^ches faisant intervenir le prototypage rapide, les utilitaires syste\*`me, les outils logiciels, les gestionnaires de ta\*^ches, l'acce\*`s aux bases de donne\*'es, la programmation graphique, les re\*'seaux, et la programmation web. Ces points forts en font un langage particulie\*`rement populaire aupre\*`s des administrateurs syste\*`me et des auteurs de scripts \s-1CGI\s0, mais l'utilisent e\*'galement des mathe\*'maticiens, des ge\*'ne\*'ticiens, des journalistes et me\*^me des managers. Et peut e\*^tre vous aussi\ ? .Sh "Qui supporte Perl\ ? Qui le de\*'veloppe\ ? Pourquoi est-il gratuit\ ?" .IX Subsection "Qui supporte Perl? Qui le de'veloppe? Pourquoi est-il gratuit?" La culture d'origine d'Internet et les croyances profonde\*'ment ancre\*'es de l'auteur de Perl, Larry Wall, ont donne\*' naissance a\*` la politique de distribution gratuite et ouverte de perl. Perl est soutenu par ses utilisateurs. Le noyau, les bibliothe\*`ques standards Perl, les modules optionnels, et la documentation que vous e\*^tes en train de lire ont tous e\*'te\*' re\*'dige\*'s par des volontaires. Vous pouvez consulter les notes personnelles a\*` la fin du fichier \s-1README\s0 de la distribution du code source de Perl pour plus de de\*'tails. L'historique des versions de Perl (jusqu'a\*` la 5.005) est disponible ici\ : perlhist. .PP En particulier, l'e\*'quipe principale de de\*'veloppement (connue sous le nom 'Perl Porters') est une bande he\*'te\*'roclite d'individus des plus altruistes engage\*'s a\*` faire un logiciel gratuit meilleur que tout ce que vous pourriez trouver dans le commerce. Vous pouvez glaner des informations sur les de\*'veloppements en cours en lisant les archives sur http://www.xray.mpe.mpg.de/mailing\-lists/perl5\-porters/ et http://archive.develooper.com/perl5\-porters@perl.org/ ou via la passerelle de news nntp nntp://nntp.perl.org/perl.perl5.porters ou son interface web http://nntp.perl.org/group/perl.perl5.porters ou encore en lisant la faq sur http://simon\-cozens.org/writings/p5p\-faq. Vous pouvez aussi vous inscrire a\*` la liste de diffusion en envoyant une demande d'inscription a\*` perl5\-porters\-request@perl.org (un message vide sans sujet suffit). .PP Bien que le projet \s-1GNU\s0 inclue Perl dans ses distributions, il n'y a pas a\*` proprement parler de \*(L"\s-1GNU\s0 Perl\*(R". Perl n'est pas produit ni entretenu par la Free Software Foundation. Les termes de la licence de Perl sont aussi moins restrictifs que ceux de la licence \s-1GNU\s0. .PP Vous pouvez obtenir une assistance commerciale pour Perl si vous le souhaitez, mais pour la plupart des utilisateurs, une assistance informelle devrait e\*^tre largement suffisante. Regardez la re\*'ponse a\*` question \*(L"Ou\*` acheter une version commerciale de perl\*(R" pour de plus amples informations. .Sh "Quelle version de Perl dois-je utiliser\ ?" .IX Subsection "Quelle version de Perl dois-je utiliser?" (contribution de brian d foy) .PP Tous les gou\*^ts sont dans la nature... il n'y a donc pas de re\*'ponse a\*` cette question qui puisse convenir a\*` tout le monde. En ge\*'ne\*'ral, vous voudrez utiliser soit la dernie\*`re version stable soit celle qui la pre\*'ce\*`de imme\*'diatement. Actuellement, ce sont respectivement perl5.8.x et perl5.6.x. .PP Apre\*`s cela, vous devez tout de me\*^me conside\*'rer plusieurs pour de\*'cider au mieux de vos inte\*'re\*^ts. .IP "\(bu" 4 Si tout marche bien, la mise a\*` jour de perl peut faire que c\*,a ne marche plus (ou au minimum amener de nouveaux avertissements). .IP "\(bu" 4 Les dernie\*`res versions de perl be\*'ne\*'ficie de plus de corrections de bugs. .IP "\(bu" 4 La communaute\*' Perl fournit de l'aide pluto\*^t pour les versions les plus re\*'centes, il vous sera donc plus facile de vous faire aider avec ces versions. .IP "\(bu" 4 Les versions ante\*'rieures a\*` perl5.004 pre\*'sentent de tre\*`s se\*'rieux proble\*`mes de se\*'curite\*' comme des de\*'passements de tampons et font l'objet de plusieurs avertissements du \s-1CERT\s0 (par exemple, http://www.cert.org/advisories/CA\-1997\-17.html). .IP "\(bu" 4 Les toutes dernie\*`res versions sont sans aucun doute les moins de\*'ploye\*'es et teste\*'es donc, si vous n'aimez pas prendre de risques, vous pouvez attendre quelques mois apre\*`s leur sortie afin de voir les proble\*`mes rencontre\*'s par les autres. .IP "\(bu" 4 L'avant\-dernie\*`re version (actuellement perl5.6.x) est habituellement maintenue assez longtemps, bien qu'elle ne soit pas au me\*^me niveau que la version courante. .IP "\(bu" 4 Personne ne met a\*` jour perl4.x. Il y a cinq ans, c'e\*'tait de\*'ja\*` une simple carcasse de chameau mort. Maintenant, ce n'est me\*^me plus un squelette et ses os d'un blanc immacule\*' s'e\*'rodent et tombent en miettes. .IP "\(bu" 4 perl6.x ne verra pas le jour tout de suite. Restez attentif mais ne craignez pas d'avoir a\*` changer de versions majeures de Perl avant un moment (NdT: pas avant fin 2006). .IP "\(bu" 4 Il existe deux pistes paralle\*`les de de\*'veloppement de perl\ : une piste pour les versions de maintenance et une piste pour les versions expe\*'rimentales. Les versions de maintenance sont stables et leur nume\*'ro de version mineur est paire (par exemple perl5.8.x ou\*` 8 est le nume\*'ro de version mineur). Les versions expe\*'rimentales peuvent inclure des fonctionnalite\*'s qui ne sont pas dans les versions stables et leur nume\*'ro de version mineur est impair (par exemple perl5.9.x ou\*` 9 est le nume\*'ro de version mineur). .Sh "Qu'est\-ce que veut dire perl4, perl5 ou perl6\ ?" .IX Subsection "Qu'est-ce que veut dire perl4, perl5 ou perl6?" (contribution de brian d foy) .PP Pour faire court, perl4 est le passe\*', perl5 est le pre\*'sent et perl6 est le futur. .PP Le nume\*'ro apre\*`s perl (le 5 dans perl5) est le nume\*'ro de version majeur de l'interpre\*'teur perl ainsi que la version du langage. Chaque version majeure posse\*`de des diffe\*'rences significatives que les versions ante\*'rieures ne peuvent pas supporter. .PP La version majeure courante de Perl est perl5 et date de 1994. Elle peut exe\*'cuter des scripts de la version majeure pre\*'ce\*'dente (perl4 qui date de mars 1991 mais a des diffe\*'rences importantes. Elle introduit le concepte de re\*'fe\*'rences, les structures de donne\*'es complexes et les modules. L'interpre\*'teur perl5 est une re\*'e\*'criture comple\*`te des sources perl pre\*'ce\*'dents. .PP Perl6 est la prochaine version majeure de Perl mais il est encore en de\*'veloppement tant du point de vue de sa syntaxe que du point de vue des choix de conception. Le travail a commence\*' en 2002 et est encore en cours. La plupart des nouvelles fonctionnalite\*'s sont apparues dans les dernie\*`res versions de perl5 et certains modules perl5 vous permettent me\*^me d'utiliser quelques e\*'le\*'ments de la syntaxe perl6 dans vos programmes. Vous pouvez en apprendre plus sur http://dev.perl.org/perl6/ . .PP Voir perlhist pour un historique des re\*'visions de Perl. .Sh "Qu'est\-ce que Ponie\ ?" .IX Subsection "Qu'est-ce que Ponie?" Lors de la convention O'Reilly Open Source Software en 2003, Artur Bergman, Fotango et la Fondation Perl ont annonce\*' un projet nomme\*' Ponie dont le but est de faire tourner perl5 sur la machine virtuelle Parrot. Ponie signifie Perl On New Internal Engine (Perl sur le nouveau moteur). L'imple\*'mentation du langage Perl 5.10 sera utilise\*'e pour Ponie et il n'y aura aucune diffe\*'rence de langage entre perl5 et ponie. Ponie n'est pas une re\*'e\*'criture comple\*`te de perl5. .Sh "Qu'est\-ce que perl6\ ?" .IX Subsection "Qu'est-ce que perl6?" Lors de la seconde convention O'Reilly Open Source Software, Larry Wall a annonce\*' que le de\*'veloppement de Perl6 allait commence\*'. Perl6 avait parfois e\*'te\*' utilise\*' pour de\*'signer le projet Topaz de Chip Salzenberg visant a\*` re\*'e\*'crire Perl en \*(C+. Ce projet, bien qu'ayant fourni des apports non ne\*'gligeables pour la prochaine version de Perl et de son imple\*'mentation, est maintenant abandonne\*'. .PP Si vous voulez en savoir plus sur Perl6 ou si vous souhaiter aider a\*` ame\*'liorer Perl, allez sur la page des de\*'veloppeurs de Perl6 http://dev.perl.org/perl6/ . .PP Il n'y a pas encore de date pre\*'vue pour Perl6 et me\*^me apre\*`s sa sortie, Perl5 restera encore longtemps maintenu. N'attendez donc pas Perl6 pour faire ce que vous devez faire. .PP \&\*(L"Se\*'rieusement, nous re\*'inventons tout ce qui doit e\*^tre re\*'invente\*'.\*(R" \&\*(-- Larry Wall .Sh "Est-ce que Perl est stable\ ?" .IX Subsection "Est-ce que Perl est stable?" Les nouvelles versions produites, qui incluent des corrections de bugs et de nouvelles fonctionnalite\*'s, sont amplement teste\*'es avant d'e\*^tre distribue\*'es. Depuis la version 5.000, on compte en moyenne une version par an. .PP Larry et l'e\*'quipe de de\*'veloppement Perl font occasionnellement des changements dans le noyau interne du langage, mais tous les efforts possibles sont de\*'ploye\*'s pour assurer la compatibilite\*' descendante. Bien que quelques scripts perl4 ne tournent pas impeccablement sous perl5, une mise a\*` jour de perl ne devrait presque jamais invalider un programme e\*'crit pour une version plus ancienne. (exception faite des corrections de bugs accidentels et des rares nouveaux mots re\*'serve\*'s). .Sh "Est-il difficile d'apprendre Perl\ ?" .IX Subsection "Est-il difficile d'apprendre Perl?" Non, il est facile de de\*'buter et me\*^me de continuer l'apprentissage de Perl. Il ressemble a\*` la plupart des langages de programmation que vous avez probablement rencontre\*'s\ ; aussi, si vous avez de\*'ja\*` e\*'crit un programme en C, un script awk, un script shell ou me\*^me un programme en \&\s-1BASIC\s0, vous avez de\*'ja\*` fait une partie du chemin. .PP La plupart des ta\*^ches ne requiert qu'un petit sous-ensemble du langage Perl. Une des ide\*'es phares en matie\*`re de de\*'veloppement Perl est\ : \*(L"Il y a plus d'une fac\*,on de proce\*'der\*(R". La courbe d'apprentissage de Perl est e\*'troite (facile a\*` apprendre) et longue (il y a beaucoup de choses faisables si vous le voulez re\*'ellement). .PP Enfin, puisque Perl est souvent (mais pas toujours, et certainement pas par de\*'finition) un langage interpre\*'te\*', vous pouvez e\*'crire vos programmes et les tester sans phase interme\*'diaire de compilation, vous permettant ainsi d'expe\*'rimenter et de de\*'boguer/tester rapidement et facilement. Cette facilite\*' d'expe\*'rimentation aplatit encore plus sa courbe d'apprentissage. .PP Les choses qui facilitent l'apprentissage de Perl sont\ : l'expe\*'rience d'Unix, quasiment n'importe quelle expe\*'rience de la programmation, une compre\*'hension des expressions rationnelles, et la capacite\*' de comprendre le code des autres. S'il y a quelque chose que vous avez besoin de faire, elle a probablement e\*'te\*' de\*'ja\*` faite, et un exemple fonctionnant est ge\*'ne\*'ralement disponible gratuitement. N'oubliez pas non plus les modules perl. Ils sont aborde\*'s dans la partie 3 de cette \&\s-1FAQ\s0, et avec le \s-1CPAN\s0 dans la partie 2. .Sh "Est-ce que Perl tient la comparaison avec d'autres langages comme Java, Python, \s-1REXX\s0, Scheme ou Tcl\ ?" .IX Subsection "Est-ce que Perl tient la comparaison avec d'autres langages comme Java, Python, REXX, Scheme ou Tcl?" Oui pour certains domaines, moins pour d'autres. De\*'finir pre\*'cise\*'ment dans quels domaines Perl est bon ou mauvais est souvent une question de choix personnel, et poser cette question sur Usenet risque fortement de de\*'clencher un de\*'bat houleux et ste\*'rile. .PP La meilleure chose a\*` faire est certainement d'essayer d'e\*'crire le code e\*'quivalent dans plusieurs langages pour accomplir un ensemble de ta\*^ches. Ces langages ont leurs propres newgroups dans lesquels vous pouvez en apprendre plus (et non, espe\*'rons le, vous disputer) sur eux. .PP Des comparatifs se trouvent sur http://www.perl.com/doXFMTEYEWTK/versus/ si vous ne pouvez vraiment pas vous en passer. .Sh "Que puis-je faire avec Perl\ ?" .IX Subsection "Que puis-je faire avec Perl?" Perl est suffisamment souple et extensible pour que vous puissiez l'employer virtuellement pour tout type de ta\*^che, du traitement de fichier ligne par ligne a\*` des grands syste\*`mes e\*'labore\*'s. Pour de nombreuses personnes, Perl remplace avantageusement les outils existants pour les scripts shell. Pour d'autres, c'est un substitut efficace et de haut niveau pour tout ce qu'ils programmeraient en langage de bas niveau comme C ou \*(C+. En de\*'finitive c'est a\*` vous (et certainement a\*` votre direction...) de voir pour quelles ta\*^ches vous allez utiliser Perl ou non. .PP Si vous avez une bibliothe\*`que fournissant une \s-1API\s0, vous pouvez en rendre n'importe quel composant disponible comme une fonction ou une variable Perl supple\*'mentaire en utilisant une extension Perl e\*'crite en C ou \*(C+, et dynamiquement lie\*'e dans votre interpre\*^teur perl principal. A\*` l'oppose\*', vous pouvez e\*'galement e\*'crire votre programme principal en C/\*(C+, et ensuite lier du code Perl au vol pour cre\*'er une puissante application. Voir perlembed. .PP Ceci dit, il y aura toujours des langages de\*'die\*'s a\*` une classe de proble\*`mes qui sont tout simplement plus pratiques. Perl essaye d'e\*^tre tout a\*` la fois pour tout le monde, mais rien de pre\*'cis pour personne. Les exemples de langages spe\*'cialise\*'s qui viennent a\*` l'esprit comptent prolog et matlab. .Sh "Quand ne devrais-je pas programmer en Perl\ ?" .IX Subsection "Quand ne devrais-je pas programmer en Perl?" Quand votre patron vous l'interdit \- mais envisagez de lui trouver un remplac\*,ant :\-) .PP En fait, une bonne raison pour ne pas utiliser Perl est d'avoir une application de\*'ja\*` existante e\*'crite dans un autre langage qui est toute faite (et bien faite), ou si vous avez une application conc\*,ue pour une ta\*^che spe\*'cifique dans un langage particulier (i.e. prolog, make) .PP Pour des raisons varie\*'es, Perl n'est probablement pas bien adapte\*' pour des syste\*`mes embarque\*'s temps\-re\*'el, des de\*'veloppements syste\*`mes de bas niveau, des travaux comme des pilotes de pe\*'riphe\*'rique ou du code a\*` commutation de contexte, des applications paralle\*`les complexes en me\*'moire partage\*'e, ou des applications tre\*`s grandes. Vous remarquerez que perl n'est pas lui\-me\*^me e\*'crit en Perl. .PP Le nouveau compilateur Perl de code natif peut e\*'ventuellement re\*'duire ces limitations jusqu'a\*` un certain degre\*', mais comprenez que Perl reste fondamentalement un langage a\*` typage dynamique, et non a\*` typage statique. On ne vous en voudra pas si vous ne lui faites pas confiance pour un code de centrale nucle\*'aire ou de contro\*^le de chirurgie ce\*'re\*'brale. Larry en dormira d'autant mieux \- en ne tenant pas compte des programmes de Wall Street. :\-) .ie n .Sh "Quelle est la diffe\*'rence entre ""perl"" et ""Perl""\ ?" .el .Sh "Quelle est la diffe\*'rence entre ``perl'' et ``Perl''\ ?" .IX Subsection "Quelle est la diffe'rence entre perl et Perl?" Un bit. Ah, mais vous ne parliez pas de codes \s-1ASCII\s0\ ? :\-) Larry emploie le terme \*(L"Perl\*(R" pour de\*'signer le langage en lui me\*^me, tandis que \*(L"perl\*(R" de\*'signe son imple\*'mentation, c'est\-a\*`\-dire l'interpre\*'teur actuel. D'ou\*` la boutade de Tom\ : \*(L"Rien d'autre que perl ne peut analyser Perl\*(R". Vous pouvez ou non choisir de suivre cet usage. Le paralle\*`lisme implique par exemple que \*(L"awk et perl\*(R" et \*(L"Python et Perl\*(R" ont l'air correct, tandis que \*(L"awk et Perl\*(R" ou \*(L"Python et perl\*(R" ne le sont pas. Mais n'e\*'crivez jamais \*(L"\s-1PERL\s0\*(R" parce que perl n'est pas un acronyme, si l'on ne tient pas compte du folklore apocryphe ni des expansions a posteriori. .Sh "Parle-t-on de programme Perl ou de script Perl\ ?" .IX Subsection "Parle-t-on de programme Perl ou de script Perl?" Larry ne s'en soucie pas vraiment. Il dit (a\*` moitie\*' pour rire) qu'un \&\*(L"script est ce que l'on donne aux acteurs. Un programme est ce que vous donnez a\*` l'audience.\*(R" .PP Originellement, un script e\*'tait une se\*'quence en boi\*^te de commandes interactives normales, c'est\-a\*`\-dire un script de chat. Une chose telle qu'un script de chat \s-1UUCP\s0 ou \s-1PPP\s0 ou un script expect est pluto\*^t conforme a\*` cette description, tout comme les scripts de configuration exe\*'cute\*'s par un programme lors de son lancement, comme \fI.cshrc\fR ou \&\fI.ircrc\fR, par exemple. Les scripts de chat e\*'taient juste des pilotes pour des programmes existants, et non pas des programmes inde\*'pendants. .PP Un scientifique de l'informatique expliquera convenablement que tous les programmes sont interpre\*'te\*'s, et que la seule question qui se pose est a\*` quel niveau. Mais si vous posez cette question a\*` quelqu'un d'autre, il pourra vous dire qu'un \fIprogramme\fR a e\*'te\*' compile\*' une seule fois pour devenir du code machine physique, et peut alors e\*^tre exe\*'cute\*' plusieurs fois, tandis qu'un \fIscript\fR doit e\*^tre traduit par un programme a\*` chaque fois qu'il est utilise\*'. .PP Les programmes Perl ne sont (habituellement) ni strictement compile\*'s, ni strictement interpre\*'te\*'s. Ils peuvent e\*^tre compile\*'s sous la forme d'un pseudo-code (pour une sorte de machine virtuelle Perl) ou dans un tout autre langage, comme du C ou de l'assembleur. Vous ne pouvez pas dire juste en le regardant si la source est destine\*'e a\*` un interpreteur pur, un interpre\*'teur d'arbre syntaxique, un interpre\*'teur de pseudo\-code, ou un compilateur ge\*'ne\*'rant du code machine, donc il est de\*'licat ici de donner une re\*'ponse de\*'finitive. .PP Maintenant que \*(L"script\*(R" et \*(L"scripting\*(R" sont des termes ayant e\*'te\*' abuse\*'s par des marketeux sans scrupules ou ignorants pour leur propre be\*'ne\*'fice infa\*^me, ils ont commence\*' a\*` avoir des significations e\*'tranges et souvent pe\*'joratives, comme \*(L"pas se\*'rieux\*(R", ou \*(L"pas de la vraie programmation\*(R". Par conse\*'quent, certains programmeurs Perl pre\*'fe\*`rent totalement les e\*'viter. .Sh "Qu'est ce qu'un \s-1JAPH\s0\ ?" .IX Subsection "Qu'est ce qu'un JAPH?" Ce sont les signatures \*(L"just another perl hacker\*(R" que certains utilisent pour signer leurs messages. Randal Schwartz les a rendues ce\*'le\*`bres. Environ une centaine parmi les plus anciennes sont disponibles sur http://www.cpan.com/CPAN/misc/japh . .Sh "Ou\*` peut on trouver une liste des mots d'esprit de Larry Wall\ ?" .IX Subsection "Ou` peut on trouver une liste des mots d'esprit de Larry Wall?" Plus d'une centaine de boutades de Larry, issues de ses messages ou du code source, peuvent e\*^tre trouve\*'es a\*` l'adresse http://www.cpan.org/misXlwall\-quotes.txt.gz . .Sh "Comment convaincre mon administrateur syste\*`me/chef de projet/employe\*'s d'utiliser Perl/Perl5 pluto\*^t qu'un autre langage\ ?" .IX Subsection "Comment convaincre mon administrateur syste`me/chef de projet/employe's d'utiliser Perl/Perl5 pluto^t qu'un autre langage?" Si votre directeur ou vos employe\*'s se me\*'fient des logiciels non entretenus, ou non officiellement fournis avec votre syste\*`me d'exploitation, vous pouvez essayer d'en appeler a\*` leur inte\*'re\*^t personnel. Si les programmeurs peuvent e\*^tre plus productifs en utilisant les constructions, la fonctionnalite\*', la simplicite\*' et la puissance de Perl, alors le directeur/chef de projet/employe\*' type devrait e\*^tre convaincu. Quant a\*` l'usage de Perl en ge\*'ne\*'ral, il est parfois aussi utile pour de\*'montrer que les temps de livraison peuvent e\*^tre re\*'duits en l'utilisant pluto\*^t qu'un autre langage. .PP Si vous avez un projet avec des impe\*'ratifs, notamment en termes de portabilite\*' ou de tests, Perl devrait certainement apporter une solution rapide et viable. En plus de tout effort de persuasion, vous ne devriez pas manquer de montrer que Perl est utilise\*', assez intensivement et avec des re\*'sultats solides et fiables, dans de nombreuses grandes entreprises informatiques de logiciel et de mate\*'riel a\*` travers le monde. En fait, de nombreuses distributions Unix livrent maintenant Perl en standard. Les forum de discussion usenet apportent l'assistance ne\*'cessaire si vous ne trouvez pas la re\*'ponse dans la documentation \fIcomple\*`te\fR, y compris cette \s-1FAQ\s0. .PP Voir http://www.perl.org/advocacy/ pour plus d'informations. .PP Si vous e\*^tes confronte\*' a\*` des re\*'ticences pour mettre a\*` jour une version ante\*'rieure de perl, insistez sur le fait que la version 4 n'est plus entretenue ni suivie par l'e\*'quipe de de\*'veloppement Perl. Un autre argument de taille en faveur de Perl5 est le grand nombre de modules et d'extensions qui re\*'duisent conside\*'rablement le temps de de\*'veloppement pour tout type de ta\*^che. Mentionnez e\*'galement que la diffe\*'rence entre la version 4 et la version 5 de Perl est similaire a\*` celle entre awk et \*(C+. (Bon d'accord, ce n'est peut\-e\*^tre pas si diffe\*'rent, mais l'ide\*'e est la\*`.) Si vous voulez de l'assistance et des garanties raisonnables que ce que vous de\*'veloppez fonctionnera encore dans le futur, alors vous devriez utiliser une version maintenue. En de\*'cembre 2003, cela signifie utiliser soit la 5.8.2 (sortie en novembre 2003) ou l'une des versions plus anciennes telles que la 5.6.2 (sortie aussi en novembre 2003 pour assurer la compilation de perl 5.6 sur les machines re\*'centes puisque la 5.6.1 datait d'avril 2001) ou la 5.005_03 (qui date de mars 1999). A\*` la rigueur la 5.004_05 si vous avez \fBabsolument\fR besoin d'une aussi vieille version (avril 1999) pour des raisons de stabilite\*'. Aucune version ante\*'rieure ne devrait e\*^tre utilise\*'e. .PP A\*` noter en particulier la chasse de grande envergure aux erreurs de de\*'passement de tampon survenues dans la version 5.004. Toute version ante\*'rieure a\*` celle\-la\*`, y compris perl4, est conside\*'re\*'e comme non su\*^re et devrait e\*^tre mise a\*` jour aussito\*^t que possible. .PP En aou\*^t 2000 dans toutes les distributions Linux, il a e\*'te\*' trouve\*' un nouveau proble\*`me de se\*'curite\*' dans la commande optionnelle 'suidperl' (qui n'est pas installe\*'e par de\*'faut) fournie avec les branches Perl 5.6, 5.005 et 5.004 (voir http://www.cpan.org/srX5.0/sperl\-2000\-08\-05/). Les versions de maintenance 5.6.1 et 5.8.0 comblent ce trou de se\*'curite\*'. La plupart, mais pas toutes, des distributions Linux proposent des correctifs pour cette vulne\*'rabilite\*' (voir http://www.linuxsecurity.com/advisories/) mais la bonne me\*'thode consiste tout de me\*^me a\*` passer au moins a\*` Perl 5.6.1. .SH "AUTEUR ET COPYRIGHT" .IX Header "AUTEUR ET COPYRIGHT" Copyright (c) 1997\-2006 Tom Christiansen, Nathan Torkington et les autres auteurs cite\*'s. Tous droits re\*'serve\*'s. .PP Cette documentation est libre. Vous pouvez la redistribuer ou la modifier sous les me\*^mes conditions que Perl lui\-me\*^me. .PP Inde\*'pendamment de sa distribution, le code de tous les exemples est ici du domaine public. Vous e\*^tes autorise\*' et me\*^me encourage\*' a\*` utiliser ou modifier ce code pour vos propres programmes, que ce soit pour le plaisir ou a\*` but lucratif. Un simple commentaire dans le code remerciant la \s-1FAQ\s0 serait courtois, quoique non exige\*'. .SH "TRADUCTION" .IX Header "TRADUCTION" .Sh "Version" .IX Subsection "Version" Cette traduction franc\*,aise correspond a\*` la version anglaise distribue\*'e avec perl 5.8.8. Pour en savoir plus concernant ces traductions, consultez . .Sh "Traducteur" .IX Subsection "Traducteur" Traduction initiale\ : Emmanuel \s-1BOURG\s0 . Mise a\*` jour\ : Roland Trique , Paul Gaborit . .Sh "Relecture" .IX Subsection "Relecture" Ge\*'rard Delafond.