Perl – Embarquer un test dans un module

Le principe est de tester la valeur retournée par la fonction caller() qui, dans un contexte scalaire, revoit le nom du paquetage d’appel.C’est le cas lorsque le module est utilisé via use() ou require(). Si le module est exécuté en tant que script, il ne sera pas chargé par un autre fichier et caller() retournera « false« .

Nous pouvons donc utiliser cette propriété pour embarquer une fonction de test qui sera exécutée lorsque le module sera appelé comme script.

Exemple :

package MonModule;
__PACKAGE__->run_test( @ARGV ) unless (defined(caller)) ;
sub run_test {
printf("%s::%s inside !\n", __PACKAGE__, 'run_test');
}
#perl ./MonModule.pm
MonModule::run_test inside !

Autres articles susceptibles de vous intéresser :

Cet article a été publié dans System avec les mots-clefs : . Bookmarker le permalien. Laisser un commentaire ou faire un trackback : URL de trackback.

Laisser un commentaire

Votre e-mail ne sera jamais publié ni communiqué. Les champs obligatoires sont indiqués par *

*
*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>