Forum Programmation.perl mod_perl, require() et ~userdir

Posté par  .
Étiquettes : aucune
0
24
mar.
2006
Bonjour,
je cherche une solution à ce problème depuis quelques heures et je n'ai rien trouvé pour le moment. Lorsque l'on utilise require(), mod_perl regarde à l'intérieur de la liste des répertoires contenus dans la variable @INC. J'aimerais pouvoir séparer un script en plus petites parties (faire des modules .pm) mais je n'arrive pas à faire en sorte que require() regarde dans le répertoire du script. Lors de l'exécution du script, le répertoire courant est / et non celui du script. De plus, j'aimerais que require fonctionne à partir d'un UserDir ($HOME/public_html/cgi-bin). Quelqu'un a une idée sur comment je pourrais m'y prendre (je suis débutant avec Perl et j'ai un devoir à faire pour jeudi prochain ;))?

Merci
  • # use lib qw(/../../);

    Posté par  (site web personnel) . Évalué à 1.

    ajouter le chemin à prendre en compte avec
    use lib qw(.....);
    ex :
    http://www.crium.univ-metz.fr/docs/devel/cleanperl/
    • [^] # Re: use lib qw(/../../);

      Posté par  . Évalué à 1.

      Le problème c'est qu'il ne faudrait pas qu'il y ait de chemin hard-codés dans mes scripts. Le correcteur ne veut pas à avoir à changer le code et il corrige sous Windows...
  • # Extutils::MakeMaker

    Posté par  (site web personnel) . Évalué à 2.

    si tu veux pas te casser la tete , tu n'as qu'a faire un module qui s'installe PROPREMENT dans le corpus des modules perl.

    pour se faire, il te faut utiliser le module fourni en standard : Extutils::Makemaker

    il est tres bien et permet de créer les Makefile en fonction de ta distribution linux/bsd/windows/hpux/... et faire une installation propre.

    comme cela ton script est d'un coté, et tes lib/modules sont dans un endroit ou un simple :

    use Mon::Module;

    permet de l'ajouter sans autre fioriture.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.