Programmation Perl/Les modules

Un livre de Wikilivres.
Programmation Perl
Programmation Perl
Programmation Perl
Sommaire




Modifier ce modèle


Ce que sont les modules[modifier | modifier le wikicode]

Un module est une sorte de bibliothèque logicielle, qui possède des fonctionnalités réutilisables. Cela se présente sous la forme d'un fichier, où des tas de fonctionnalités sont écrites et qui touchent toutes à un type d'application, un protocole réseau, un usage, une thématique. Ce qui veut dire qu'un jour une personne a programmé un ensemble de fonctions qui vous permettent de faire quelque chose en particulier, comme par exemple créer une interface graphique ou jouer de la musique, et vous pouvez réutiliser le travail déjà réalisé, ce qui vous permet de gagner du temps.

Nous nous occuperons plus tard de la manière de créer un module, ici on va voir comment les utiliser.

Avant de commencer, sachez que les modules sont recherchés dans des répertoires. Cette liste est dans la variable globale @INC (INC pour include), pour l'afficher :

 perl -E "say for @INC"

L'ordre des répertoires est important, car si deux modules du même nom se retrouvent dans deux répertoires différents, seul le premier trouvé sera utilisé. Vous avez également la commande :

 perl -V 

Cette commande vous permettra d'obtenir beaucoup plus d'informations, n'hésitez pas à essayer cette commande.

Une fois que vous avez installé Perl, vous possédez une « distribution de Perl », ce qui veut dire que vous avez déjà un certain nombre de modules les plus utilisés.

Connaître les modules déjà installés sur le système[modifier | modifier le wikicode]

Il y a deux options de perldoc à connaître pour savoir quels sont les modules installés. La première est pour savoir quels sont les modules installés par défaut avec votre « distribution » de Perl :

 perldoc perlmodlib

La seconde est pour connaître les modules installés en plus (ceux que vous avez installé ainsi que les modules qui ont été installés en tant que dépendance à ces modules).

 perldoc perllocal

Installer un module[modifier | modifier le wikicode]

Pour installer des modules, je vous conseille d'installer le logiciel cpanminus qui permet d'installer très simplement n'importe quel module en tapant simplement :

 cpanm Le::Module

cpanminus gère également le téléchargement et l'installation des dépendances du module que vous cherchez à obtenir, il n'y a rien à faire.

Comment installer cpanminus[modifier | modifier le wikicode]

Sous linux (TODO : à vérifier) (pensez à aller voir le site de votre distribution)
 aptitude install cpanminus    # Debian
 apt-get install cpanminus     # Ubuntu
 yum install cpanminus         # Fedora

Utiliser un module[modifier | modifier le wikicode]

Pour utiliser simplement un module :

use nomdumodule;        # cas où le module est juste composé d'un fichier dans un des répertoires de @INC
use Le::Module;         # dans le cas où le module se trouve dans le répertoire « Le » lui-même dans un des répertoires de @INC

Prenons la ligne 2, ce que ce code fait est qu'il va chercher dans une liste de répertoires le dossier « Le » dans lequel il y aurait le fichier « Module.pm » (.pm pour Perl Module).

Une fois le module chargé, il ajoute des mots dans notre espace de nommage, c'est à dire qu'il nous permet d'appelé de nouvelles fonctions.

Une fois que vous avez chargé un module, vous ne pouvez plus le décharger.

un exemple concret[modifier | modifier le wikicode]

On va chercher le répertoire courant via le module Cwd et la fonction getcwd.

use Cwd;

my $repertoire = getcwd();      # getcwd est une fonction dans le module Cwd
say "Nous sommes dans le répertoire $repertoire";

Si on n'avait pas inclut le module Cwd on n'aurait pas la fonction getcwd (pas dans notre espace de noms, fonction inconnue).

Voir la documentation d'un module[modifier | modifier le wikicode]

Vous pouvez voir la documentation de n'importe quel module en tapant :

perldoc Le::Module

bash$perldoc Cwd

Réponse :

System::xxx::xxx::Perl::5.18::xxx::Cwd(3)

NAME
       Cwd - get pathname of current working directory

SYNOPSIS
           use Cwd;
           my $dir = getcwd;

           use Cwd 'abs_path';
           my $abs_path = abs_path($file);

DESCRIPTION
       This module provides functions for determining the pathname of the
       etc 

Où trouver des modules[modifier | modifier le wikicode]

On ne va voir ici que des sites où tous les modules sont gratuits et que vous pouvez utiliser librement. Pour trouver des modules et donc des bouts de programme déjà fait, vous avez deux sites web qui sont les références en Perl à savoir :

  • search.cpan.org, CPAN (Comprehensive Perl Archive Network) : beaucoup de modules ;
  • Méta-CPAN : apporte des outils très intéressants pour choisir le bon module dans l'annuaire du CPAN ;

À savoir : chacun des modules est documenté avec POD (rappel : Plain Old Documentation) et ces sites vous permettent de voir leur documentation sous la forme HTML (directement sur le site donc) ainsi que des informations sur ces modules, comme par exemple une note qui leur est attribuée par les autres personnes utilisant le CPAN.

Le méta-CPAN permet quant à lui d'obtenir des informations comme la compatibilité du module

Comment choisir un module[modifier | modifier le wikicode]

Pour bien choisir un module, nous prenons généralement un module avec un nom le plus générique possible, se rapprochant de ce que nous cherchons. Par exemple, si vous cherchez un module pour faire du réseau (échange de données entre différents ordinateurs tout simplement), vous allez chercher dans meta-cpan « network ».

Créer un module[modifier | modifier le wikicode]

todo