J'essaie de migrer des scripts CGI vers mod_perl
en utilisant ModPerl::Registry
.Comment ajouter un chemin de lib spécifique à un script dans mod_perl?
Les scripts utilisent des modules qui se trouvent dans le même répertoire que le script, mais puisque le répertoire mod_perl
est ailleurs, cela ne fonctionne pas.
J'ai essayé d'utiliser FindBin
ajouter à la @INC
, mais voici ce que FindBin
ressemble à:
$FindBin::Bin: /usr/sbin
$FindBin::Script: httpd
Ce qui ne sert à rien du tout.
Alors, y a-t-il un moyen pour le script de comprendre où il se trouve, et d'ajouter ce répertoire à @INC
? Idéalement, tous les autres scripts utilisant le même serveur Apache n'obtiendraient pas ce répertoire ajouté à leur @INC
.
Je ne suis pas sûr que '__FILE__' ne soit pas modifié par' mod_perl'. Si c'est sûr, alors il n'y a pas besoin de 'BEGIN' &' unshift' (d'ailleurs, il ne devrait pas y avoir de deux-points après BEGIN –
Cela fonctionne: utilisez File :: Basename; utilisez lib dirname (__FILE__); Votre la suggestion ne fonctionne pas, mais elle m'a mis sur la bonne voie –
La suggestion de David n'a pas fonctionné à cause du colon après 'BEGIN' –