informatica - ¿Cómo puedo establecer la ruta de inclusión de Perl para módulos para un script CGI?
load cgi module apache (2)
Tengo varios módulos Perl instalados en mi máquina de hosting en ~/perl
, ¿cómo los agrego a la ruta del módulo Perl? Establecer PERL5LIB
o unshift
las rutas a @INC
seguramente funciona, pero la variable de entorno no ayuda cuando se ejecuta como un script CGI y el modo @INC
no es muy portátil. ¿Hay una mejor manera? Esto tiene que ser un problema común, ¿me estoy perdiendo algo?
Una forma más limpia de hacerlo es:
use lib "/path/" ;
hay otras formas interesantes y buenas de hacerlo que se pueden encontrar aquí:
http://www.slideshare.net/pfig/cpan-training-presentation/
Además, re: scripts CGI, PUEDE definir rutas PERL5LIB para su CGI Env, solo depende de su servidor web.
Algunos Webhosts permiten el control específico de las variables env para el entorno CGI, y solo tiene que configurarlos, otros pueden tener una lista de "permisos" que permite que las variables visibles al inicio aparezcan en el ámbito local.
Puede ayudar a leer sobre cómo hacer esto en su servidor HTTP específico.
Hay una opción más, si configurar ENV no es de su gusto: local :: lib
Que busca algunas rutas predefinidas automáticamente.
PERL5LIB funciona bien para scripts CGI. Solo tiene que establecer la variable en el lugar correcto, como la configuración del servidor. ¿Qué servidor web estás usando? Para Apache, utilizo la directiva SetEnv de mod_env.
@INC es portátil. Es posible que las rutas que coloque allí no sean las mismas en todas las máquinas, pero no debería tener un problema con la variable en sí misma.
¿Has leído las entradas de preguntas frecuentes en perlfaq8 :