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

  FORUM HardWare.fr
  Programmation
  Perl

  utilisation d'un module perso avec active perl

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

utilisation d'un module perso avec active perl

n°340319
bobmorton
Posté le 22-03-2003 à 10:18:10  profilanswer
 

Salut, je suis un bon gros débutant en perl et je suis en train de me battre pour utiliser un module. Je suis sous windows XP et j'utilise active perl installé ici(F:\Perl\).  
Je souhaite utiliser un module qui se trouverait dans le meme repertoire que le fichier "Extraction.pl" (F:\programmation\tp_systeme\tp06\Extraction.pl). Deja est ce que active perl autorise cela ou est-ce qu'il faut obligatoirement entreposer les modules dans le rep (F:\Perl\lib\)? Sinon puisque perl ne trouve pas la fonction que je souhaite utiliser je me suis dit que peut-etre mes entetes sont faux, donc les voici :  
 
le module "module.pm" :
"package module;
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(ExtraireSource);
 
 
sub ExtraireSource{....
}
"
 
et le prog "Extraction.pl" :  
"use module;
$Source= $ARGV[0];#nom du fichier à traiter
%l = ExtraireSource($Source);"
 
voila et avec ca perl me dit qu'il ne trouve rien :( merci d'avance @+.

mood
Publicité
Posté le 22-03-2003 à 10:18:10  profilanswer
 

n°340375
bobmorton
Posté le 22-03-2003 à 12:18:23  profilanswer
 

j'ai trouvé un premier élément de répone ici :
http://forum.hardware.fr/forum2.ph [...] subcat=392
cependant meme apres c modifs ca ne marche pas :(
voila le contenu de mes 2 fichiers :  
module.pm :
package module;
use vars qw(@ISA @EXPORT);
use Exporter;
@ISA=qw(Exporter);
@EXPORT=qw(extract);
 
sub extract{
$fichierSource = $_[0];
 open(LECT,"<$fichierSource" );
 %res=();
 while($ligneLue = <LECT> ){
  if($ligneLue=~/\w*\.c$/){
    $res{$&}=1;    
  }#if
 }#while
 print "$res";
 return %res;  
}
1;
 
Extraction.pl
 
use module;
%l = extract($ARGV[0]);
@k = keys(%l);
print "@k";
 
 
Je craque !@+

n°340427
pospos
Posté le 22-03-2003 à 16:09:21  profilanswer
 

tu dit que module.pm et extraction.pm sont dans le meme repertoire? ca devrait marcher alors??!
 
Ben verifie que ton @INC contient bien "."
 
sinon qq conseils:
-utilise "use strict"
-met une majuscule à ton module (les minuscules c'est pour les modules de base)
-met tes modules persos dans un repertoir 'lib' dans le repertoire de ton script et fait un "use lib qw(lib)" dans ton script, ou alors un :

Code :
  1. BEGIN { unshift @INC, "lib"};


 
peut etre qu'un module nommé "module.pm" est deja installé dans ton lib/ ou ton site/lib, et donc c'est celui la que prendra perl en premier
l'ordre de ton @INC normalement c'est:

Code :
  1. F:/perl/lib
  2. F:/perl/site/lib
  3. .


Message édité par pospos le 22-03-2003 à 16:10:19
n°340453
bobmorton
Posté le 22-03-2003 à 17:18:33  profilanswer
 

C'est quoi le @INC?
Sinon il sont bien dans le meme rep et j'ai changé le nom en modulegh.pm pour éviter que le use pointe vers autre chose et ca ne marche toujours pas, j'ai encore ce message :  
Undefined subroutine &main::extract called at Extraction.pl line 3.
et à la ligne 3 j'ai mon appel a extract, je capte pas merci @+

n°340472
pospos
Posté le 22-03-2003 à 18:26:49  profilanswer
 

le @INC c'est la ou perl regarde pour savori ou aller chercher les modules. Donc si tu veux k'il regarde dans ton repertoir courant il faut absolument que @INC contienne '.'
 
essai "use lib qw(.)" pour voir

n°340663
bobmorton
Posté le 23-03-2003 à 10:22:33  profilanswer
 

finalement apres m'etre un peu focalise sur le @inc pendant une demi heure je me suis rendu compte que j'avais oublié de changé le "package module;" en tete de fichier j'ai fait mon bon gros boulet sur ce coup la.... quoiqu'il en soit merci à toi @+


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

  utilisation d'un module perso avec active perl

 

Sujets relatifs
[Delphi perso edition] Probleme avec la manip de fichiers.Objecteering UML Modeler : Utilisation des classes
[phpBB] - Mod : smilies perso pour chaque user comme hfrC'est chaud l'utilisation de threads ?
Recommencer un try tant que le catch s'active[Perl/Tk] Probleme de focus
[Perl/Tk] probleme de focusOu regarder Gravity gratuitement ?
cheche des exemples de pages en php avec utilisation de mysqlUtilisation des msflexgrid
Plus de sujets relatifs à : utilisation d'un module perso avec active perl


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