Comment puis-je programmer en Perl chemin d'inclusion de modules pour un script CGI?
J'ai plusieurs modules Perl installés sur ma machine qui héberge dans ~/perl
, comment puis-je ajouter à Perl chemin d'accès du module? Réglage PERL5LIB
ou unshift
ing les chemins de @INC
sûrement fonctionne, mais que la variable d'environnement n'aide pas lors de l'exécution d'un script CGI et le @INC
chemin n'est pas très portable. Est-il un meilleur moyen? Ce doit être un problème commun, suis-je manque quelque chose?
OriginalL'auteur zoul | 2008-12-10
Vous devez vous connecter pour publier un commentaire.
PERL5LIB fonctionne très bien pour les scripts CGI. Vous avez juste à définir la variable dans le bon endroit, telles que la configuration du serveur. Qui serveur web utilisez-vous? Pour Apache, j'utilise le SetEnv directive de mod_env.
@INC est portable. Les chemins que vous avez mis en il y a peut-être pas le même sur chaque machine, mais vous ne devriez pas avoir un problème avec la variable elle-même.
Avez-vous lu la FAQ entrées dans perlfaq8:
Cela ne fonctionne pas sur toutes les configurations de serveurs - certains désactiver SetEnv, et de ce que je suis en train de lire, d'autres permettent de définir des variables d'environnement que de commencer avec HTTP_. Une sorte de mesure de sécurité, je pense.
OriginalL'auteur brian d foy
D'une façon plus propre à faire de l'omi est :
il y a d'autres intéressantes et de bonnes façons de faire qui peut être trouvé ici:
http://www.slideshare.net/pfig/cpan-training-presentation/
Aussi, re: scripts CGI, vous POUVEZ définir PERL5LIB chemins de CGI Env, tout dépend de votre hébergeur.
Certains Hébergeurs permis spécifique de contrôle des variables d'environnement pour le CGI de l'Environnement, et vous avez juste à régler, d'autres peuvent avoir un "permis" de liste qui permet de variables visibles à l'heure de démarrage apparaissent dans une portée locale.
Peut aider à lire sur la façon de le faire sur votre propre serveur HTTP.
Il y a une option de plus, si le paramètre ENV n'est pas à votre goût: locale::lib
Qui recherche quelques chemins prédéfinis automatiquement.
OriginalL'auteur Kent Fredric