• Publicidad

Error. No encuentra el módulo (can't locate...)

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Error. No encuentra el módulo (can't locate...)

Notapor ricar » 2011-03-13 07:24 @350

Hola a todos.

Tengo un problema con unos módulos instalados vía PPM y a mano.

El caso es que no los localiza cuando compilo el script (utilizo un script de ejemplo del propio módulo cogido de CPAN).

He cargado a el path a mano a través de use lib porque éste no está en la variable por defecto @INC, pero aun así no logro que lo localice.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.   use lib '/opt/ActivePerl-5.12/site/lib/auto/Net';
  3.   use Net::Divert;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

En dicho path se encuentra Divert.pm, pero me sigue saliendo el error:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
"Can't locate Net/Divert.pm in @INC (@INC contains: /opt/ActivePerl-5.12/site/lib/auto/Net /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at prueba.pl line 3.
BEGIN failed--compilation aborted at prueba.pl line 3"
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Por cierto, he probado el tema de permisos y he modificado los mismos con control total para todos (777) por si fueran por ahí los tiros, pero nada de nada.

Trabajo sobre un Ubuntu 10 y Active State para Perl.

¿Alguna idea?

Muchas gracias.

Un saludo,
Ricardo.
ricar
Perlero nuevo
Perlero nuevo
 
Mensajes: 71
Registrado: 2009-07-13 07:29 @353

Publicidad

Re: Error. No encuentra el módulo (can locate...)

Notapor explorer » 2011-03-13 07:32 @356

Cambia

use lib '/opt/ActivePerl-5.12/site/lib/auto/Net';

por

use lib '/opt/ActivePerl-5.12/site/lib/auto/';

P.D. ¿Puedes explicarnos porqué has instalado el Perl Active State en un Ubuntu? ¿No estaba el Perl instalado ya? A veces, suele ser problemático mezclar varios Perl en la misma máquina (salvo si usas perlbrew).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Error. No encuentra el módulo (can't locate...)

Notapor ricar » 2011-03-13 07:51 @368

Hola, explorer.

Solucionado. En realidad no estaba dentro de auto si no en lib/, directamente.

Sobre por qué instalé Active State, pues no lo sé. Vengo de Win y lo necesitaba y he cambiado drásticamente a Linux y por defecto me instalé los programas que requería en Win. No había caído en la cuenta que no pudiera ser necesario.

¿Me aconsejas desinstalar Active State?

Gracias por tu ayuda.

Saludos,
Ricar.
ricar
Perlero nuevo
Perlero nuevo
 
Mensajes: 71
Registrado: 2009-07-13 07:29 @353

Re: Error. No encuentra el módulo (can't locate...)

Notapor explorer » 2011-03-13 08:40 @403

Por lo que veo en la salida de @INC, ni siquiera estabas usando el intérprete perl de ActiveState. Si te fijas, estabas ejecutando el intérprete perl del propio Ubuntu.

Si ejecutas 'perl' seguramente estás ejecutando el intérprete perl de Ubuntu. Con el comando 'which perl' verás que se trata con seguridad de /usr/bin/perl, y no de /opt/ActivePerl-5.12/bin/perl.

Yo lo dejaría puesto, por si acaso, pero si pasan unos meses y no lo vas a usar, pues se puede quitar.

Ahora bien... En Ubuntu veo que tienes instalado el Perl v5.10, mientras que la versión de Active State es la v5.12... mucho más moderno y rápido.

Yo sí que intentaría usar Perl v5.12. Pero si en Ubuntu no puedes instalarlo como paquete de software, siempre puedes usarlo a nivel de usuario. Para ello, te vale con modificar la variable de entorno $PATH para que encuentre el intérprete perl de ActiveState antes que el del sistema (lo comprobarás con perl -V). Y añadir la variable de entorno $PERL5LIB que apunte a la ruta donde se encuentran las bibliotecas y módulos de ActiveState (lo mismo que antes, con perl -V comprobarás si está bien puesta).

De esa manera, al ejecutar perl desde la línea de comandos, estaremos usando el de ActiveState.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Error. No encuentra el módulo (can't locate...)

Notapor ricar » 2011-03-14 03:10 @174

Muchas gracias por la respuesta.

Un saludo,
Ricar.
ricar
Perlero nuevo
Perlero nuevo
 
Mensajes: 71
Registrado: 2009-07-13 07:29 @353


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 12 invitados