Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1945 connectés 

  FORUM HardWare.fr
  Programmation

  [Perl] Creer un module...

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Perl] Creer un module...

n°113906
Suri
Darksurious
Posté le 18-03-2002 à 23:13:45  profilanswer
 

c possible de creer un module en perl avec ses ptites fonctions a soi dedans?
 
 
(désolé fallait que je demande :D)


---------------
Suri.morkitu.org : Balades au coeur de la ville...
mood
Publicité
Posté le 18-03-2002 à 23:13:45  profilanswer
 

n°113917
Tentacle
Posté le 18-03-2002 à 23:29:11  profilanswer
 

Suri a écrit a écrit :

c possible de creer un module en perl avec ses ptites fonctions a soi dedans?
 
 
(désolé fallait que je demande :D)  




 
oui :) tu peux au moins rassembler des fonctions dans un fichier .pm en specifiant le nom du package. Mieux encore, tu fais une class en fait mais là regarde la doc ou inspire toi des .pm fournis :)

n°114785
Aricoh
gentil mais fo po pousser
Posté le 20-03-2002 à 11:00:33  profilanswer
 

Faire un package (.pm) en Perl est super aisé, voici la structure de ton fichier .pm :
 
package Nom_Du_Module;
use vars qw(@ISA @EXPORT); # à utiliser par défaut
use Exporter;  # idem
@ISA = qw (Exporter);  # idem
@EXPORT = qw (Fonction1 Fonction2 Fonction3 );

 
Qq explications :
use vars qw(@ISA @EXPORT); : importe des vars d'environnement
use Exporter; : le package Exporter.pm contient une méthode d'importation de package déjà toute faite, il te suffit d'utiliser donc cette méthode (sans t'en soucier) pour que n'importe lequel de tes programmes puisse utiliser ton package
@EXPORT = qw (Fonction1 Fonction2 Fonction3 ); : dans la liste @EXPORT, tu y indiques le nom de toutes tes fonctions du package qui seront disponibles via un use Mon_Package. Si tu veux que certaines fonctions soient dispo via un require, il te faut rajouter une autre liste, @EXPORT_OK (de mémoire) en y indiquant les fonctions qui seront accessibles par ton require.
 
Enfin, toujours terminer ton fichier package par 1;.
 
Voici l'exemple du package Toto.pm :
 
package Toto;
require 5.6.1;
use strict;
use vars qw(@ISA @EXPORT);
use Exporter;
@ISA = qw (Exporter);
@EXPORT = qw (Pouet Truc Muche );
 
sub Pouet {
}
 
sub Truc {
}
 
sub Muche {
}
 
1;

 
Valà. Dans mon exemple, les 3 fonctions seront accessibles dans mon programme principale (.pl) juste via un use Toto.
 
Attention à l'espace de noms, c'est un avantage avec les packages, tu peux avoir 2 fonctions ayant le même nom, l'une dans ton programme principal, l'autre dans un package.
 
Par exemple, on a la fonction Pouet dans le package Toto.pm et tu as une fonction Pouet dans ton script qui utilise Toto.pm.
 
Dans ton programme, en faisant appel à Pouet(), c'est la fonction du script qui prévaudra. Pour utiliser celle du package, tu emploieras Toto:: Pouet().
 
Valà valà.

 

[jfdsdjhfuetppo]--Message édité par Aricoh--[/jfdsdjhfuetppo]


---------------
j'suis l'Duc des 7 Enfers Éternels ...
n°115394
Suri
Darksurious
Posté le 21-03-2002 à 01:34:10  profilanswer
 

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [Perl] Creer un module...

 

Sujets relatifs
Comment fait-on pour créer des cookies ?Lancer un script perl dans un autre script perl sous UNIX
[Perl] variables locales et cie...[Perl] petit pb incomprehensible... pour moi
on fait comment pour creer des petits executables pour windows??Créer un Forum [HTML]
[Perl + xChat / nunux] blem avec une variablePERL +SQL
Comment creer un hôte virtuel sous Apache ?[PERL] Modules Storable et Math::Matrix
Plus de sujets relatifs à : [Perl] Creer un module...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR