.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05)
.\"
.\" 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. \*(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-
.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\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" 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.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" 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 "2009-03-16" "DocFr" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME/NOM"
.IX Header "NAME/NOM"
perlfaq1 \- Questions d'ordre ge\*'ne\*'ral sur Perl
.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/src/5.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.