Il peut être très utile pour vos codes de développer vos propres modules. Encore faut-il les appeler. En réalité, l'appel à un module local n'est pas si différent de l'appel d'un module que vous aurez installé sur votre machine. Considérons ce petit module nommé essai.pl :
#!/usr/bin/perl
package essai;
print "Bonjour tout le monde !\n";
1;
Dans le même répertoire que le module, vous écrivez votre script appelant ce module :
#!/usr/bin/perl -w
use strict;
print "Au revoir !\n";
use essai;
Dans cet exemple, vous afficherez d'abord la chaîne "Bonjour tout le monde !" puis celle de votre code. Mais il est possible aussi d'utiliser le mot clé require pour appeler un module :
#!/usr/bin/perl -w
use strict;
print "Au revoir !\n";
require essai;
Cette fois-ci, c'est la chaîne de votre code qui sera affichée en première. La différence entre use et require se situe au niveau des temps d'appel. use sera appelé dès l'exécution de votre script perl alors que require sera appelé conformément à la suite d'instruction de votre code. require se comporte ainsi comme une macro C #include.
Voici un deuxième exemple. Le module "mon_module" contient dans notre cas un sous programme (longueur) qui sera appelé dans le programme principal.
Il aurait pu contenir 0 ou plusieurs sous programmes.
Rappel : un module est une bibliothèque de sous programme ou procédure ajoutant des fonctionnalités à notre programme principal.
mon_module.pm
#!/usr/bin/perl -w
use strict;
use Carp;
package mon_module;
sub longueur{
my ($seq) =@_; #récupération de la séquence à traiter
my $lg = length($seq);
print "c'est une séquence de longueur $lg\n";
}
1; #obligatoire dans les modules en fin de programme.
########################################################
script_principal.pl
#!/usr/bin/perl -w
use strict;
use Carp;
use lib './repertoire_module'; #mon module se trouve dans le répertoire "repertoire_module"
use mon_module; =>utilisation du module "mon_module"
my $seq = "ATCGTGC";
&longueur($seq); #utilise la fonction &longueur de mon module
=>c'est une séquence de longueur 7
print "c'est ok!"; =>c'est ok!
|