perl:programmation_modulaire
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| perl:programmation_modulaire [2009/03/15 00:53] – édition externe 127.0.0.1 | perl:programmation_modulaire [2013/03/12 23:43] (Version actuelle) – root | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Programmation modulaire ====== | ||
| + | |||
| ====== 1. Modules et utilisation ====== | ====== 1. Modules et utilisation ====== | ||
| Ligne 12: | Ligne 14: | ||
| Pour utiliser un module Perl, il suffit de demander : | Pour utiliser un module Perl, il suffit de demander : | ||
| + | <code perl> | ||
| use List::Util (shuffle); | use List::Util (shuffle); | ||
| | | ||
| my @random = shuffle(1..10); | my @random = shuffle(1..10); | ||
| + | </ | ||
| Le nom d'un module utilise la convention !CamelCase (ici //List// et //Util//), et le nommage est lui-même dans un espace hiérarchique. Cette hiérarchie n'est pas nécessairement lié à des relations de descendance au sens orienté objet, bien que ce soit en général le cas à chaque fois que cela est possible. | Le nom d'un module utilise la convention !CamelCase (ici //List// et //Util//), et le nommage est lui-même dans un espace hiérarchique. Cette hiérarchie n'est pas nécessairement lié à des relations de descendance au sens orienté objet, bien que ce soit en général le cas à chaque fois que cela est possible. | ||
| Ligne 24: | Ligne 28: | ||
| Nous le verrons plus loin, les modules Perl sont de simple fichiers Perl suivant une convention précise. L' | Nous le verrons plus loin, les modules Perl sont de simple fichiers Perl suivant une convention précise. L' | ||
| * **Chemins par défaut**: l' | * **Chemins par défaut**: l' | ||
| + | |||
| $ perl -e 'print join(" | $ perl -e 'print join(" | ||
| /etc/perl | /etc/perl | ||
| Ligne 35: | Ligne 40: | ||
| * **Option -I** (i majuscule): on peut ponctuellement rajouter un ou des chemins de recherche de modules à l'aide de cette option, souvent à partir de l' | * **Option -I** (i majuscule): on peut ponctuellement rajouter un ou des chemins de recherche de modules à l'aide de cette option, souvent à partir de l' | ||
| + | |||
| # | # | ||
| ... | ... | ||
| Il est possible d' | Il est possible d' | ||
| + | |||
| export PERL5OPT=" | export PERL5OPT=" | ||
| * **PERLLIB/ | * **PERLLIB/ | ||
| + | |||
| export PERL5LIB=" | export PERL5LIB=" | ||
| * **use lib " | * **use lib " | ||
| + | <code perl> | ||
| use lib " | use lib " | ||
| ... | ... | ||
| + | </ | ||
| ====== 2. Anatomie d'un module ====== | ====== 2. Anatomie d'un module ====== | ||
| Ligne 60: | Ligne 69: | ||
| Perl recherche les modules demandes à l'aide des chemins de recherche qu'on lui a fournis, recensées dans //@INC//, et en décomposant la hiérachie des noms en répertoire et nommant le module lui-même avec l' | Perl recherche les modules demandes à l'aide des chemins de recherche qu'on lui a fournis, recensées dans //@INC//, et en décomposant la hiérachie des noms en répertoire et nommant le module lui-même avec l' | ||
| + | |||
| $ perl -e 'use IO::Socket; print $INC{" | $ perl -e 'use IO::Socket; print $INC{" | ||
| / | / | ||
| Ligne 72: | Ligne 82: | ||
| ===== Bases d'un module ===== | ===== Bases d'un module ===== | ||
| + | <code perl> | ||
| package Test:: | package Test:: | ||
| | | ||
| Ligne 93: | Ligne 103: | ||
| print " | print " | ||
| } | } | ||
| - | | + | </ |
| 1; | 1; | ||
| Ligne 102: | Ligne 112: | ||
| Si ce module est dans un fichier // | Si ce module est dans un fichier // | ||
| + | |||
| # | # | ||
| | | ||
| Ligne 112: | Ligne 123: | ||
| Il est important de noter que les fonctions listées dans //@EXPORT// depuis le module sont automatiquement disponibles telles quelles (sans préfixe) pour l' | Il est important de noter que les fonctions listées dans //@EXPORT// depuis le module sont automatiquement disponibles telles quelles (sans préfixe) pour l' | ||
| + | |||
| use Test::Bidon qw/test/; | use Test::Bidon qw/test/; | ||
| ... | ... | ||
| Ligne 128: | Ligne 140: | ||
| Une section de documentation est une ligne commençant par le symbole **=** et un mot-clé de section. La documentation peut être présente à n' | Une section de documentation est une ligne commençant par le symbole **=** et un mot-clé de section. La documentation peut être présente à n' | ||
| - | Pour le style standard (sections requises), se référer à {{{man perlmodstyle}}}. Exemple : | + | Pour le style standard (sections requises), se référer à man perlmodstyle. Exemple : |
| =head1 NAME | =head1 NAME | ||
| | | ||
| Ligne 145: | Ligne 158: | ||
| =head1 DESCRIPTION | =head1 DESCRIPTION | ||
| | | ||
| - | | + | Ce module implémente des méthodes qui présentent peu d' |
| | | ||
| ==head2 Fonctions de base | ==head2 Fonctions de base | ||
| Ligne 176: | Ligne 189: | ||
| L' | L' | ||
| - | $ pod2man Test/ | ||
| + | $ pod2man Test/ | ||
perl/programmation_modulaire.1237078416.txt.gz · Dernière modification : (modification externe)
