Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Comprobacion de módulo

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Módulos
Mensaje Jue Ene 31, 2008 10:36 am
situ
Perlero Frecuente
Perlero Frecuente
Registrado: 09 Abr 2007
Mensajes: 132
Comprobacion de módulo Responder citando

Buenas,
Los molesto para consultarles cómo puedo hacer una comprobación si tengo un módulo instalado.
Tengo un script el cual utiliza un módulo y muchas veces cuando lo comparto con otra persona no le anda porque no tiene el módulo instalado y este no se da cuenta que por este motivo no le funciona.
Entonces me gustaría que cuando ocurra esto que salga por pantalla un simple PRINT donde le informe que instale el módulo Very Happy

Gracias
Mensaje Jue Ene 31, 2008 12:05 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 3823
Ubicación: Valladolid, España
Responder citando

Perl:
#!/usr/bin/perl

BEGIN {
    eval "use Games::Nintendo::Mario";
    if ( $@ ) {
        die "ERROR al cargar el módulo: $!\n";
    }
}

1;


Sacado del Perl CookBook.

P.D: Sí que existe el módulo Games::Nintendo::Mario.
Mensaje Jue Ene 31, 2008 12:26 pm
situ
Perlero Frecuente
Perlero Frecuente
Registrado: 09 Abr 2007
Mensajes: 132
Responder citando

Gracias
Mensaje Jue Ene 31, 2008 2:40 pm
situ
Perlero Frecuente
Perlero Frecuente
Registrado: 09 Abr 2007
Mensajes: 132
Responder citando

Consulté el código que me pasaste. Anda bien, pero me figuran en pantalla las líneas que no se pueden ejecutar por el tema del módulo; me gustaría que éstas no estén.
Traté de poner un no warnings; e igualmente figura.
Mensaje Jue Ene 31, 2008 3:27 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 3823
Ubicación: Valladolid, España
Responder citando

Lo normal es que con el die el programa termine inmediatamente, al fallar la ejecución del programa (en tiempo de ejecución, por eso está en un BEGIN).

Quizás los fallos que ves están sucediendo en tiempo de compilación...

¿No puedes enseñarlos?
Mensaje Jue Ene 31, 2008 4:01 pm
situ
Perlero Frecuente
Perlero Frecuente
Registrado: 09 Abr 2007
Mensajes: 132
Responder citando

Aparece lo siguiente:
C:\>perl nmap.pl
ERROR al cargar el modulo: Nmap:Scanner
command: cpancpan> install Nmap::Scanner at nmap.pl line
BEGIN failed--compilation aborted at nmap.pl line 8.

Lo que está en negrita sería lo que está de más :d

El código de la aplicación es:
http://pastebin.org/17660
Mensaje Jue Ene 31, 2008 4:42 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 3823
Ubicación: Valladolid, España
Responder citando

Pon un "\n" al final del die, es decir, al final de la última frase que pinta el die.
Mensaje Jue Ene 31, 2008 4:48 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 3823
Ubicación: Valladolid, España
Responder citando

Me he colado...

Cambia die() por warn() y pon a continuación un exit().
Mensaje Jue Ene 31, 2008 5:48 pm
situ
Perlero Frecuente
Perlero Frecuente
Registrado: 09 Abr 2007
Mensajes: 132
Responder citando

Gracias voy a probarlo
Publicar nuevo tema   Responder al tema    Foros de discusión -> Módulos Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group