l'équivalent de
#include en C
ou
source en TCL
sans qu'on parle de module
Version imprimable
l'équivalent de
#include en C
ou
source en TCL
sans qu'on parle de module
Dois-tu indiquer à Perl où se trouve un de tes modules? (Désolée mais je ne connais ni C ni TCL)
Perl utilise la variable @INC contenant les chemins vers les répertoires contenant des modules, rajoute s'y celui de ton module.
En Perl on n'inclut pas du code source dans un script, on charge un module, avec son propre espace de noms, c'est nettement plus propre qu'une solution type "#include" (laquelle est possible en fait, mais oublie ça tout de suite, ce n'est pas une bonne solution).
Un exemple court :
fichier MyModule.pm :
Et ensuite :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 package MyModule; # espace de nom use strict; use warnings; use base 'Exporter'; # permet d'exporter des noms vers l'espace de nom du client du module our @EXPORT = qw($global_var my_sub); # noms exportés par défaut our @EXPORT_OK = qw($global_var_2); # noms exportés s'ils sont demandés explicitement our ($global_var, $global_var_2) = ("Hello", "World"); sub my_sub { print "Hello World !"; } 1; # important, pour signaler que le module s'est bien chargé correctement
fichier script.pl :
Il faut que MyModule.pm soit dans l'un des chemins de @INC. Si besoin est, tu peux rajouter temporairement un chemin dans @INC en utilisant :Code:
1
2
3
4
5
6
7
8
9 #!/usr/bin/perl use strict; use warnings; use MyModule; print $global_var, " ", $MyModule::global_var_2, "\n"; my_sub(); __END__
avant de charger ton module.Code:use lib "/ce/chemin/mene/a/mon/module";
--
Jedaï