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

 


Dernière réponse
Sujet : [Perl] Creer un module...
Suri marci marci :)

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Suri marci marci :)
Aricoh 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]

Tentacle

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 :)

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

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