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 : 2009/03/15 00:55 (modification externe)