• Publicidad

Problema con "use FindBin qw($Bin)"

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

Problema con "use FindBin qw($Bin)"

Notapor fgalves » 2007-05-29 06:32 @314

Hola a todos,

El caso es que tengo un pequeño problemilla con un script Perl.

Dicho script contenía el código siguiente:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use strict;
use warnings;

use Getopt::Long;   # GetOptions
use Net::FTP;
use Data::Dumper;

use Logger;

use FindBin qw($Bin);
use lib "$Bin";

...
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


El script ha sido "cron-ado" para ser ejecutado de madrugada y la salida estándar redireccionada a un fichero de log. Esta mañana, un mensaje de error aparecía en dicho fichero de log diciendo que el modulo "Logger" no pudo ser encontrado en el array @INC. Dicho package (Logger.pm) se encuentra en el mismo directorio que el script que está siendo ejecutado.

He modificado el script, desplazando la instrucción "use Logger" después de la "use FindBin....", porque creo que el problema podría venir de ahí, es decir, que el "use Logger" debe ser efectuado después del "use FindBin" para que pueda ser localizado:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use strict;
use warnings;

use Getopt::Long;   # GetOptions
use Net::FTP;
use Data::Dumper;

use FindBin qw($Bin);
use lib "$Bin";

use Logger;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Mi idea es esperar a mañana por la mañana para ver si el script se ha ejecutado correctamente y si ha logrado encontrar satisfactoriamente el package "Logger".
De todas formas, ¿alguien podría confirmar si mi suposición es correcta?

¡Muchas gracias!
¡Saludos!
Felipe
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Publicidad

Notapor explorer » 2007-05-29 08:33 @398

Ejecuta un programa Perl que sólo tenga como misión pintar el contenido de @INC. Si entre los directorios que muestra sale '.' entonces no te hace falta el módulo FindBin, porque significa que Perl también mira en el directorio actual para buscar por módulos.

Prueba con un 'perl -MLogger -e 1' para comprobar si te localiza el Logger.pm en tu directorio, sin la ayuda del 'use lib' y 'FindBin'.

Mira las primeras líneas de Logger.pm y verifica que hay un 'package Logger;' al principio.
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


Volver a Básico

¿Quién está conectado?

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