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 :
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 |
Et ensuite :
fichier script.pl :
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__ |
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 :
use lib "/ce/chemin/mene/a/mon/module";
avant de charger ton module.
--
Jedaï
Partager