Página 1 de 1

Utilizar módulos no instalados con un CGI script

NotaPublicado: 2009-08-28 13:21 @598
por makhix
Hola, buenas tardes amigos.

Hace mucho que sigo su foro y recién ahora tengo una duda que no haya sido respondida en los post anteriores.

¿Es posible utilizar la forma use('libreria/MIME'); use MIME::Entity; para generar un envío de correo desde un CGI? Sin tener instalado el modulo MIME-tools en el servidor?

Yo tengo acceso a algunas carpetas al mismo nivel del index, y cuando quiero correr el CGI me sale el siguiente error:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:

Can't locate MIME.pm in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at C:\http\new\0-0\nuevositio\prototipo\mando.pl line 5.
BEGIN failed--compilation aborted at C:\http\new\0-0\nuevositio\prototipo\mando.pl line 5.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Gracias...

PD: De más está decir que no tengo acceso como administrador al server, y están corriendo un Windows... (lástima).

Re: Utilizar Modulos no instalados con un CGI script

NotaPublicado: 2009-08-28 16:24 @725
por explorer
Se ve que estás siguiendo el tutorial de kidd sobre el uso de módulos sin instalar.

Usando use lib 'directorio/'; puedes indicar en qué directorio se encuentran los módulos, además de en los directorios de @INC.

El mensaje de error dice que no ha encontrado el error en los directorios
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
C:/Perl/site/lib
C:/Perl/lib
.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Así que en alguno de esos directorios hay que instalarlo. Oh añadir alguno más con use lib.

Fíjate también que entre la lista de directorios está '.', que es el mismo directorio donde está nuestro programa, así que también podríamos instalar nuestro módulo al lado de nuestro programa. Pero con atención a su nombre: si el módulo se llama ModuloA::ModuloB, entonces debes crear un directorio llamado ModuloA y dentro de él, guardar el fichero ModuloB.pm. Esto es porque con use ModuloA::ModuloB; Perl busca ModuloA/ModuloB.pm en la lista de directorios.

Re: Utilizar Modulos no instalados con un CGI script

NotaPublicado: 2009-08-29 03:09 @173
por makhix
Bueno, nuevamente gracias por la pronta respuesta. :mrgreen:

Voy a seguir tus indicaciones, espero poder dar en la tecla, pues tengo un trabajo parado por esto.