Comment voulez-vous créer un module Perl?
Comment écrivez-vous un module Perl? En Python, vous pouvez utiliser:
# module.py
def helloworld(name):
print "Hello, %s" % name
# main.py
import module
module.helloworld("Jim")
Vous devez vous connecter pour publier un commentaire.
Une classe:
Un module qui exporte des fonctions:
Un script qui utilise ces:
Fondamentalement, vous créez un fichier nommé
Yourmodulename.pm
, dont le contenu est:Alors le programme qui utilise le module va ressembler:
Vous pouvez organiser vos modules dans un ordre hiérarchique (et j'espère logique) façon. Pour ce faire, vous créez une arborescence de répertoires comme:
Votre/Module.h
Votre/Autres/Module.pm
Et puis dans votre programme:
Il y a plus de facilités à l'exportation de variables et de fonctions à partir de votre module, vous pouvez prendre un coup d'oeil à Henning Koch "L'écriture de graves Perl: Le minimum absolu que vous devez savoir".
Une "exacte" équivalent de votre exemple Python, Perl devrait ressembler à ceci:
Pour en savoir plus, voir l'entrée de
package
dans perlfunc de la documentation. Pour beaucoup plus, consultez les perlmod de la documentation.Le dernier tiers de Intermédiaire Perl est consacré à la création de module.
Chaque fois que vous voulez savoir comment faire quelque chose en Perl, vérifiez perltoc, la table des matières de la documentation Perl:
Plusieurs parties de la base de documentation Perl peut vous aider à:
perlnewmod
perltoot: Tom Orientée Objet Tutoriel
Bonne chance,
Un détail mineur que les réponses jusqu'à présent n'ont pas mentionné, c'est que, si vous avez un (de préférence de petite taille) module qui est suffisamment précise qu'il ne sera jamais réutilisé, vous pouvez le mettre dans le même fichier que le programme principal ou un autre package:
Ce n'est pas souvent utilisé, car il vous donne un paquet qui est défini dans un fichier dont le nom n'est pas le même que le paquet, ce qui peut être source de confusion parce que vous avez à
use
/require
le nom du fichier, mais la référence dans le code par le nom du package.Également de noter que la
1;
est seulement nécessaire que la dernière ligne de chaque fichier qui est inclus par l'intermédiaire deuse
/require
. Dans ce cas, je n'ai pas besoin parce que c'est dansmain.pl
. Si vous mettez plusieurs paquets dans le même fichier, vous avez seulement besoin d'un1;
à la fin du fichier, et non après chaque paquet.La façon la plus traditionnelle de la configuration d'un module est comme suit:
et comme d'autres l'ont dit, vous pouvez l'utiliser comme ceci:
h2xs -XA -n Mon::Module
h2xs est un utilitaire qui est livré en standard avec perl, conçu pour aider dans la construction de modules liés notamment lié C-têtes/code, mais qui peut être utilisé pour construire un squelette complet d'un pur module perl (avec l'-XA drapeaux), y compris des choses comme un répertoire de test, un fichier, un fichier Makefile, et un Manifeste. (un bon article en décrivant les détails ici: http://perltraining.com.au/tips/2005-09-26.html )
Elle est un peu vieille école, mais il vaut la peine de regarder même si c'est juste pour tous les rappels gves vous parler de tout droit (tests, la documentation, les numéros de version, l'exportation et le export_ok listes, le facile à oublier des trucs...)
Vous vous retrouverez avec un Module".h" fichier à l'intérieur d'un "Mon" répertoire (à partir de la rubrique "Mon::Module") qui ressemble à ceci: