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

  FORUM HardWare.fr
  Programmation
  Perl

  Require & use ? besoin d'aide

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Require & use ? besoin d'aide

n°717212
DeirElBahr​i
Posté le 06-05-2004 à 12:31:29  profilanswer
 

Salut  a tous. j'ai un probleme avec l utilisation de require en perl. en gros j'ai un fichier avec une 50aine de fonctions et je voudrais les separer en plusieurs fichiers pour mieux m'y retrouver. soit en utilisant 'require' soit en utilisant 'use'.
malgre mon ami google, J'ai du mal avec la syntaxe a utiliser dans les differents fichiers sachant que dans le fichier 2.pl j'ai un fonction qui utilise des variables globales au fichier 1.pl ... besoin d'aide! merci

mood
Publicité
Posté le 06-05-2004 à 12:31:29  profilanswer
 

n°717320
ben33
Posté le 06-05-2004 à 14:34:38  profilanswer
 

SI j'ai bien tout compris... Ca fait ca.. Sinon tant pis.. Je suis débutant aussi.  
La difference entre require et use est academique :
require est plus utilisé dans le genre #include et use
comme import. dans la pratique les deux permettent
d'importer des modules... : use module() ou require module.pm

n°717348
pospos
Posté le 06-05-2004 à 14:59:15  profilanswer
 

il faut faire des .pm et non des .pl
 
en gros tu a ton script principal dans un .pl, et la tu 'use'ou 'require' tous les .pm qu'il te faut (qui eux-meme peuvent user d'autres .pm)
 
chaque .pm commence par une ligne du genre:
 
package Bidule;
 
pour un fichier s'appelant Bidule.pm
ensuite tu fais simplement
 
use Bidule;
 
dans ton .pl
 
apres pour utiliser une variable globale d'un autre module (déclarée avec 'our' ou sans aucun use strict) tu fait simpelement $Bidule::nom_de_la_variable
 
Pense aussi à terminer tous tes .pm par "1;" sinon le use ou le require va planter

n°717352
pospos
Posté le 06-05-2004 à 15:02:19  profilanswer
 

ben33 a écrit :

SI j'ai bien tout compris... Ca fait ca.. Sinon tant pis.. Je suis débutant aussi.  
La difference entre require et use est academique :
require est plus utilisé dans le genre #include et use
comme import. dans la pratique les deux permettent
d'importer des modules... : use module() ou require module.pm


 
le use se fait au moment de la compilation (car le code perl est compilé!), quelque soit l'endroit du fichier ou il se trouve. le require est effectué au moment ou il est rencontré, donc par exemple tu peux le mettre dans une structure conditionnelle pour charger un module si une condition donnée est remplie (avec le use il serait chargé dans tous els cas!)
 
l'autre difference est que 'use' va directement importer les symboles exportés par le module usé, alors que le require n'importe rien.
 
donc un
 
use Bidule;
 
est equivalent à un
 
require Bidule;
import Bidule;
 
(avec toujours la difference du compile time vs run time évoqué plus haut)

n°718085
DeirElBahr​i
Posté le 07-05-2004 à 02:26:32  profilanswer
 

merci a ts les deux... je teste ça :)

n°718086
DeirElBahr​i
Posté le 07-05-2004 à 02:34:13  profilanswer
 

par contre un petit point..j'ai un fichier 1.pl et un 2.pm. dans 1.pl je use 2.pm et j'ai aussi des globales.. pour les utiliser dans 2.pm dois-je faire $1::variable ?

n°718088
burgergold
5$? va chez l'diable!
Posté le 07-05-2004 à 03:59:10  profilanswer
 

à priori jdirais que tu peux pas les utiliser dans 2. Mais puisque dans 2 c'est des fonctions, créer toi une fonction qui te la retournera
 
ex:
 
test.pl
 
my $value = Malib::get_value1();
 
Malib.pm
 
my $value1 = "toto";
 
sub get_value1 {
  return $value1;
}


---------------
http://www.boincstats.com/signature/user_664861.gif
n°718117
pospos
Posté le 07-05-2004 à 09:04:21  profilanswer
 

le script principal est par defaut appellé "package main;"
 
donc tu peux faire $main::bidule pour referencer cette varaible (et tu n(as pas besoin de faire un use 1.pl dans ton 2.pm)
 
mais comme le dit Burgergold c'est pas tres propre de faire ca, et il vaut mieux bien separer le code de chauqe module (sinon quel est l'interet?) et faire des accesseurs pour les interactions entres modules


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

  Require & use ? besoin d'aide

 

Sujets relatifs
$_GET .. besoin d'aide[aide] Page de stats
aide pour creer un site pour petites annonces...Demande d'aide sur le code global de mon site (html, js, frames,...)
[PHP] Besoin d'un coup de main: générer un script anti-leechAide pour un petit programme très simple !
[Perl] Besoin d'un ti coup de pouce pour une regexpcomment créer un fichier d'aide a la sauce visual?
besoin d avis sur la fesabilite de la chose.bEsoin d un avis
Plus de sujets relatifs à : Require & use ? besoin d'aide


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)