=encoding iso-8859-15 =for comment Ce document est au format Pod. Pour le lire, il vous faut utiliser un formateur de Pod comme "perldoc perlpod". =head1 NAME/NOM X X X perlpod - Le format Pod (plain old documentation), la bonne vieille documentation =head1 DESCRIPTION Pod est un langage de balise, simple à utiliser pour écrire de la documentation pour Perl lui-même ainsi que pour les programmes Perl et les modules Perl. Des traducteurs existent pour convertir le Pod vers différents formats comme le texte brut, le HTML, les pages man et d'autres encore. Le langage Pod reconnait à la base trois sortes de S les paragraphes L, les paragraphes L et les paragraphes L. =head2 Les paragraphes ordinaires X La plupart des paragraphes d'une documentation sont des blocs de texte ordinaires, comme celui-ci. Il vous suffit de taper votre texte sans aucune marque particulière et avec une ligne vide avant et après. Lorsqu'il sera formaté, ce bloc subira une mise en forme minimale comme un redécoupage des lignes, problablement écrites dans une police à espacement proportionnelle, qui seront sans doute justifiées. Dans les paragraphes ordinaires, vous pouvez utiliser des codes de mise en forme pour le B, l'I, le style C, les L et autres. Ces codes sont expliqués dans la section L, ci-dessous. =head2 Les paragraphes verbatim X X X Les paragraphes verbatim (mot pout mot) sont habituellement utilisés pour présenter des blocs de code ou d'autres bouts de texte qui ne requièrent aucune analyse, aucune mise en forme particulière et dont les lignes ne doivent pas être redécoupées. Un paragraphe verbatim se distingue par son premier caractère qui doit être un espace ou une tabulation. (Et habituellement, chacune de ses lignes commence par des espaces ou des tabulations.) Il devrait être reproduit à l'identique, en supposant que les tabulations sont alignées sur 8 caractères. Il n'existe aucun code de mise en forme et, par conséquent, aucune possibilité de faire de l'italique ou quoi que ce soit d'autre. Un \ est \ et rien d'autre. =head2 Les paragraphes de commande X Un paragraphe de commande est utilisé pour spécifier des traitements spéciaux sur des parties du texte comme les titres ou les listes. Tous les paragraphes de commande (qui ne font habituellement qu'une seule ligne) commencent par le caractère S<« = »>, suivi d'un identificateur, suivi d'un texte arbitraire que la commande peut utiliser de la façon qui lui plaît. Les commandes actuellement reconnues sont =pod =head1 titre =head2 titre =head3 titre =head4 titre =over niveauindentation =item texte =back =beagin format =end format =for format =encoding type =cut Voici en détail des explications pour chacune S =over =item C<=head1 I> X<=head1> X<=head2> X<=head3> X<=head4> X X X X =item C<=head2 I> =item C<=head3 I> =item C<=head4 I> Les commandes head1 à head4 produisent des titres et head1 est le titre de plus haut niveau. Le texte qui suit la commande et qui constitue le reste du paragraphe est le contenu du titre. Par S =head2 Attributs des objets Le texte "Attributs des objets" est ici le titre. (Notez que les niveaux head3 et head4 sont des ajouts récents qui ne seront pas reconnus par de vieux traducteurs de Pod.) Le texte du titre peut utiliser des codes de mise en forme comme S =head2 Valeurs possibles pour C<$/> Ces codes sont expliqués dans la section L, ci-dessous. =item C<=over I> X<=over> X<=item> X<=back> X X X =item C<=item I> =item C<=back> Les commandes item, over, et back ont besoin d'un peu plus S S<« =over »> débute une section destinée à créer une liste utilisant des commandes S<« =item »>, ou pour indenter un ou plusieurs paragraphes normaux. Utilisez S<« =back »> à la fin de votre liste ou de votre groupe de paragraphes. L'option I de S<« =over »> indique le niveau d'indentation, généralement mesuré en em (où un em est la largeur d'un M de la police de base du document) ou en une unité comparable. Si l'option I est omise, sa valeur par défaut est quatre. (Et certains traducteurs ignoreront cette valeur quelle qu'elle soit.) Dans le I de C<=item texte...> vous pouvez utiliser des codes de mise en forme comme par S =item Utilisation de C<$|> pour contrôler l'usage des tampons Ces codes sont expliqués dans la section L, ci-dessous. Notez aussi les quelques règles basiques suivantes pour bien utiliser les sections S<« =over »> ... S<« =back » :> =over =item * N'utilisez pas S<« =item »> en dehors d'une section S<« =over »> ... S<« =back »>. =item * La première chose qui suit une commande S<« =over »> devrait être une commande S<« =item »>, sauf s'il n'y a vraiment aucun item dans cette section S<« =over »> ... S<« =back »>. =item * N'utilisez pas de commande S<« =headI »> dans une section S<« =over »> ... S<« =back »>. =item * Et, sans doute le plus important, utilisez des items cohérents entre S soit ce sont tous des S<« =item * »> pour produire une liste à S soit ils sont tous de la forme S<« =item 1 »>, S<« =item 2 »>, etc. pour produire une liste S soit ils sont tous de la forme S<« =item truc »>, S<« =item bidule »>, etc. pour produire une liste de définitions. Si vous commencez par une puce ou par un numéro, continuez de même, puisque les traducteurs se basent sur le premier S<« =item »> pour choisir le type de liste. =back =item C<=cut> X<=cut> X Pour terminer un bloc Pod, utilisez une ligne vide puis une ligne commençant par C<=cut> puis encore une ligne vide. Ceci informe Perl (et les traducteurs Pod) que c'est à cet endroit que le code Perl recommence. (La ligne vide avant le C<=cut> n'est pas techniquement indispensable mais beaucoup de vieux traducteurs Pod en ont besoin.) =item C<=pod> X<=pod> X La commande C<=pod> en elle-même ne sert pas à grand chose si ce n'est de signaler à Perl (et aux traducteurs Pod) qu'une section Pod commence à cet endroit. Une section Pod peut commencer par I quel paragraphe de commande. Une commande C<=pod> ne sert donc qu'à indiquer une section Pod qui débute directement par un paragraphe ordinaire ou un paragraphe verbatim. Par S =item trucs() Cette fonction fait des trucs. =cut sub trucs { ... } =pod Souvenez-vous de vérifier son S trucs() || die "Ne peux pas faire des trucs !"; =cut =item C<=begin I> X<=begin> X<=end> X<=for> X X X =item C<=end I> =item C<=for I I> Les commandes for, begin et end vous permettent d'utiliser des sections de texte/code/donnée qui ne seront pas interprétées comme du Pod normal mais qui pourront être utilisées directement par des traducteurs spécifiques ou qui pourront avoir un usage spécial. Seuls les traducteurs qui savent comment utiliser le format spécifié utiliseront cette section. Sinon elle sera complètement ignorée. Une commande S<«=begin I»> puis quelques paragraphes et enfin une commande S<«=end I»> signifie que les paragraphes inclus sont réservés aux traducteurs comprenant le format spécial appelé I. Par S =begin html

Ceci est un paragraphe HTML

=end html La commande S<« =for I I »> indique que c'est uniquement ce paragraphe (le I qui est juste après I) qui est dans ce format spécial. =for html

Ceci est un paragraphe HTML

Les deux exemples ci-dessus produiront le même résultat. La différence est qu'avec S<« =for »>, seul le paragraphe est concerné alors qu'entre le couple S<« =begin format »> ... S<« =end format »>, vous pouvez placer autant de contenu que nécessaire. (Notez que les lignes vides après la commande =begin et avant la commande =end sont requises.) Voici des exemples de l'utilisation de S =begin html
Figure 1.
=end html =begin text --------------- | foo | | bar | --------------- ^^^^ Figure 1. ^^^^ =end text Parmi les noms de format actuellement connus pour être reconnus par les formateurs, on trouve S<« roff »>, S<« man »>, S<« latex »>, S<« tex »>, S<« text »> et S<« html »>. (Des traducteurs Pod peuvent en considérer certains comme synonymes.) Le nom de format S<« comment »> est pratique pour placer des notes (juste pour vous) qui n'apparaîtront dans aucune version mise en forme de la documentation S =for comment S'assurer que toutes les options sont documentées ! Quelques Is utilisent le préfixe C<:> (comme par exemple C<=for :nomformat> ou C<=begin :nomformat> ... C<=end :nomformat>) pour indiquer que le texte ne doit pas être considéré comme brut mais qu'il contient en fait du texte Pod (c.-à-d. contenant éventuellement des codes de mise en forme) qui n'est pas à utiliser pour une mise forme normale (c.-à-d. qui n'est pas un paragraphe normal mais pourrait être utilisé, par exemple, comme note de bas de page). =item C<=encoding I> X<=encoding> X X Cette commande permet de déclarer le codage utilisé dans le document. La plupart des utilisateurs n'en ont pas besoin ; mais si votre encodage n'est pas US-ASCII ou Latin-1 alors indiquez-le aux traducteurs Pod en plaçant une commande C<=encoding I> le plus tôt possible dans le document. Comme I, utilisez l'un des noms reconnus par le module C. S =encoding utf8 =encoding koi8-r =encoding ShiftJIS =encoding big5 =back N'oubliez pas, en utilisant une commande, que cette commande se termine à la fin de son I, pas à la fin de sa ligne. D'où dans les exemples ci-dessus, les lignes vides que vous pouvez voir après chaque commande pour terminer son paragraphe. Quelques exemples de S =over =item * Premier item =item * Second item =back =over =item Foo() Description de la fonction Foo =item Bar() Description de la fonction Bar =back =head2 Codes de mise en forme X X X X Dans les paragraphes ordinaires et dans certains paragraphes de commande, plusieurs codes de mise en forme (appelés aussi S<« séquences> S) peuvent être S =for comment "séquences internes" est un terme un peu abscons. Préférez plutôt "codes de mise en forme". =over =item CtexteE> -- texte en italique X X<< IZ<><> >> X X Utilisé pour mettre en évidence (Cattention !E>) et pour les paramètres (CLABELE>). =item CtexteE> -- texte en gras X X<< BZ<><> >> X X Utilisé pour les options (C-nE de perl>), pour les programmes (CchfnE pour ça>), pour mettre en évidence (Cattention !E>) et autres (Cl'autovivificationE>). =item CcodeE> -- du code X X<< CZ<><> >> X X Présente le code dans une police type machine à écrire ou donne une indication que le texte est un programme (Cgmtime($^T)E>) ou quelque chose liée à l'ordinateur (Cdrwxr-xr-xE>). =item CnomE> -- un hyperlien X X<< LZ<><> >> X X Il y a différentes syntaxes, présentées ci-dessous. Dans ces syntaxes, C, C et C
ne peuvent pas contenir les caractères '/' et '|' et les caractères '<' ou '>' doivent pouvoir s'associer. =over =item * CnomE> Lien vers une page de documentation Perl (par exemple CNet::PingE>). Notez que C ne devrait pas contenir d'espaces. Cette syntaxe est aussi utilisé occasionnellement pour faire référence aux pages de manuel UNIX comme dans Ccrontab(5)E>. =item * Cnom/"section"E> ou Cnom/sectionE> Lien vers une section particulière d'une autre page de documentation. Par exemple Cperlsyn/"Boucles for"E>. =item * C/"section"E> ou C/sectionE> ou C"section"E> Lien vers une section particulière de ce même document. Par exemple C/"Méthodes objets"E>. =back Une section débute par un titre ou un item. Par exemple, Cperlvar/$.E> ou Cperlvar/"$."E> seront tous deux liés à la section qui débute par C<=item $.> dans perlvar. Et Cperlsyn/Boucles forE> ou Cperlsyn/"Boucles for"E> sont tous deux liés à la section débutant par C<=head2 Boucle for>" dans perlsyn. Pour contrôler le texte affiché comme lien, vous pouvez utiliser Ctexte|...E> comme S =over =item * Ctexte|nomE> Lié ce texte à la page de documentation dont le nom est fourni. Par exemple CMessages d'erreurs de Perl|perldiagE>. =item * Ctexte|nom/"section"E> ou Ctexte|nom/sectionE> Lié ce texte à la section de la page de documentation dont le nom est fourni. Par exemple CInstructions SWITCH|perlsyn/"BLOCs de base et instruction switch"E>. =item * Ctexte|/"section"E> or Ctexte|/sectionE> ou Ctexte|"section"E> Lié ce texte à la section de ce même document. Par exemple Cles différents attributs|/"Données membres"E> =back Ou vous pouvez lier une page S =over =item * Cscheme:...E> Lien vers un URL absolu. Par exemple Chttp://www.perl.org/E>. Mais notez que, pour différentes raisons, il n'existe pas de syntaxe du genre Ctext|scheme:...E>. =back =item CentitéE> -- un caractère nommé X X<< EZ<><> >> X X Très similaire aux S<« entités »> HTML/XML C<&I;>. =over =item * CltE> -- un E littéral (plus petit que) =item * CgtE> -- un E littéral (plus grand que) =item * CverbarE> -- un | littéral | (Ire Iticale) =item * CsolE> -- un / littéral (barre oblique) =back Les quatre codes ci-dessus sont optionnels sauf s'ils sont utilisés à l'intérieur d'un autre de code de mise en forme, en particulier C...E> ou lorsqu'ils sont directement précédés d'une lettre majuscule. =over =item * ChtmlentitéE> Quelques entités HTML non numériques telle que CeacuteE>, qui signifie la même chose que C<é> en HTML -- c.-à-d. un e minuscule avec un accent aigu. =item * CnombreE> Le caractère ASCII/Latin-1/Unicode dont le code est le nombre. Le préfixe "0x" indique que I est en hexadécimal comme dans C0x201EE>. Le préfixe "0" indique que le nombre est en octal comme dans C075E>. Sinon, le I est considéré en décimal comme dans C181E>. Notez que les vieux traducteurs Pod peuvent ne pas reconnaitre l'octal et l'hexadécimal et que de nombreux traducteurs ne savent pas présenter correctement les caractères dont le code est supérieur à 255. (Certains traducteurs peuvent même choisir un compromis pour présenter les caractères Latin-1, en présentant un simple "e" à la place de CeacuteE>.) =back =item CnomfichierE> -- utilisé pour un nom de fichier X X<< FZ<><> >> X X Typiquement affiché en italique. S C.cshrcE> =item CtexteE> -- texte contenant des espaces non sécables X X<< SZ<><> >> X X Cela siginifie que les mots du I ne doivent pas être séparés sur plusieurs lignes. S S$x ? $y : $zE>>. =item Cnom de sujetE> -- une point d'entrée d'index X X<< XZ<><> >> X X Ce code est ignoré par la plupart des traducteurs mais certains peuvent l'utiliser pour construire un index. Il est toujours présenté comme la chaîne vide. S CURL absoluE> =item CE> -- un code de mise en forme nul (sans effet) X X<< ZZ<><> >> X X C'est rarement utilisé. C'est l'un des moyens pour empêcher l'inteprétation d'un code EE...E. Par exemple, à la place de "CltE3>" (pour "NE3"), vous pourriez écrire "CEE3>" (le code "ZEE" sépare le "N" et le "E" afin qu'ils ne soient pas considérés comme le début d'une (hypothétique) séquence "NE...E"). =begin comment This was formerly explained as a "zero-width character". But it in most parser models, it parses to nothing at all, as opposed to parsing as if it were a E or E, which are REAL zero-width characters. So "width" and "character" are exactly the wrong words. =end comment =back La plupart du temps, un simple couple inférieur/supérieur suffira pour délimiter le début et la fin de votre code de mise en forme. Mais il se peut que vous ayez besoin de placer un symbole supérieur (un signe S<« plus> grand S, '>') dans un code de mise en forme. C'est très courant lorsqu'on souhaite présenter un extrait de code avec une police différente du reste du texte. Comme d'habitude en Perl, il y a plusieurs moyens pour le faire. Le premier consiste tout simplement à utiliser l'entité S<« plus> grand S via le code de mise en forme S :> C<$a E=E $b> Ce qui S C<$a E=E $b>. Un moyen plus lisible et probablement plus "brut" est d'utiliser de délimiteurs qui n'imposent pas de codage spécial pour un simple ">". Les traducteurs Pod proposent cela en standard depuis perl 5.5.660 via les doubles délimiteurs ("<<" et ">>") qui peuvent être utilisés I>. Par S X C<< $a <=> $b >> En fait, vous pouvez utiliser le nombre d'inférieurs et de supérieurs que vous souhaitez tant qu'il y en a autant dans le délimiteur ouvrant que dans le délimiteur fermant et si vous vous assurez qu'un espace suit immédiatement le dernier S<< « < » >> du délimiteur ouvrant et qu'un autre espace précède immédiatement le premier S<< « > » >> du délimiteur fermant (ces espaces seront ignorés). Les exemples suivants fonctionneront donc S X C<<< $a <=> $b >>> C<<<< $a <=> $b >>>> Et ils signifient exactement la même chose S C<$a E=E $b> Prenons un autre S supposons que vous voulez présenter l'extrait de code suivant dans un style C<< CZ<><> >> (code)E: open(X, ">>thing.dat") || die $! $foo->bar(); Vous pourrez le faire comme S C<<< open(X, ">>thing.dat") || die $! >>> C<< $foo->bar(); >> qui est certainement plus facilement lisible que l'ancien S CEthing.dat") || die $!> C<$foo-Ebar();> Tout cela est actuellement accepté par pod2text (Pod::Text), pod2man (Pod::Man) et tout autre traducteur pod2xxx et Pod::Xxxx qui utilise Pod::Parser version 1.093 ou supérieure. =head2 L'objectif X L'objectif est la simplicité d'utilisation, pas la puissance expressive. Les paragraphes ont l'air de paragraphes (des blocs) pour qu'ils ressortent visuellement, et on peut les faire passer facilement à travers C pour les reformater (c'est F7 dans ma version de B ou Esc-Q dans ma version de B). Je voulais que le traducteur laisse les C<'>, les C<`> et les C<"> tranquilles en mode verbatim pour que je puisse copier/coller ces paragraphes dans un programme qui marche, les décaler de 4 espaces, et l'imprimer, euh, mot pour mot. Et probablement dans une fonte à chasse fixe. Le format Pod est certainement insuffisant pour rédiger un livre. Pod essaie juste d'être un format infaillible qui puisse servir de source pour nroff, HTML, TeX et autres langages de balises, lorsqu'ils sont utilisés pour de la documentation en ligne. Des traducteurs existent pour B, B, B (c'est pour nroff(1) et troff(1)), B et B. D'autres encore sont disponibles sur CPAN. =head2 Incorporer du Pod dans les modules Perl Vous pouvez inclure de la documentation Pod dans vos scripts et vos modules Perl. Commencez votre documentation par une ligne vide puis une commande S<« =head1 »> et terminez-la par une commande S<« =cut »> et une ligne vide. Perl ignorera le texte en Pod. Regardez n'importe lequel des modules fournis en standard pour vous servir d'exemple. Si vous souhaitez mettre votre Pod à la fin du fichier, et si vous utilisez un __END__ ou un __DATA__ comme marque de fin, assurez-vous de mettre une ligne vide avant votre première commande Pod. __END__ =head1 NAME Time::Local - efficiently compute time from local and GMT time Sans cette ligne vide avant C<=head1>, de nombreux traducteurs ne reconnaitront pas C<=head1> comme le début d'une section Pod. =head2 Conseils pour écrire en Pod =over =item * X X X La commande B permet de vérifier le respect de la syntaxe Pod. Par exemple, elle vérifie les lignes entièrement blanches dans les sections Pod ou les commandes et les codes de mise en forme inconnus. Vous pouvez aussi passer votre document au travers d'un ou plusieurs traducteurs Pod et vérifier le résultat (en l'imprimant si besoin est). Certains problèmes rencontrés peuvent être liés à des bogues des traducteurs. À vous de décider si vous voulez les contourner ou non. =item * Si vous êtes plus à votre aise en rédigeant du HTML que du Pod, vous pouvez rédiger votre documentation en HTML simple puis la convertir en Pod grâce au module expérimental L (disponible sur CPAN) et enfin vérifier le code obtenu. Le module expérimental L peut aussi être utile. =item * De nombreux traducteurs Pod ont absolument besoin d'une ligne blanche avant et après chaque commande Pod (commande =cut y compris). Quelque chose comme S<ça :> # - - - - - - - - - - - - =item $firecracker->boom() This noisily detonates the firecracker object. =cut sub boom { ... ...amènera ces traducteurs Pod à ignorer totalement la section Pod. À la place, préférez quelque chose comme S # - - - - - - - - - - - - =item $firecracker->boom() This noisily detonates the firecracker object. =cut sub boom { ... =item * Certains traducteurs Pod anciens ont absolument besoin de paragraphes (incluant les paragraphes de commande comme "=head2 Fonctions") séparés par des lignes I vides. Si vous avez des lignes apparament vides mais contenant en fait des espaces, elles ne seront pas reconnues comme séparateurs par ces traducteurs et provoqueront peut-être de mauvaises mises en forme. =item * Des traducteurs Pod anciens ajoutent quelques mots autour de certains liens LEE de telle manière que CFoo::BarE> deviendra par exemple "the Foo::Bar manpage". Vous ne pouvez donc pas écrire des choses telles que CbiduleE> si vous voulez que le résultat reste compréhensible. À la place, écrivez Cbidule|biduleE> ou C<< LEla documentation >> C<< bidule|biduleE >> pour contrôler l'apparence du lien. =item * Un texte qui dépasse la 70e colonne dans un bloc verbatim peut être arbitrairement coupé par certains traducteurs. =back =head1 VOIR AUSSI L, L, L, L, L, L, L. =head1 AUTEUR Larry Wall, Sean M. Burke =head1 TRADUCTION =head2 Version Cette traduction française correspond à la version anglaise distribuée avec perl 5.8.8. Pour en savoir plus concernant ces traductions, consultez L. =head2 Traducteur Traduction S Roland Trique >. Mise à S Paul Gaborit . =head2 Relecture Gérard Delafond =cut