• Publicidad

Necesito ayuda para ejecutar un script de Perl en SuSE 11

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

Necesito ayuda para ejecutar un script de Perl en SuSE 11

Notapor salvadorva » 2009-04-21 13:32 @605

Hola, necesito de su ayuda, tengo instalado Linux SuSE 11 y cuando trato de correr un script de Perl no funciona de la manera en que aparece en los manuales, con un documento de texto; únicamente con el switch -e escribiendo todo en la consola; si alguien puede ayudarme con eso; quizás hay que guardar el archivo .pl en alguna carpeta especifica, pero eso no lo dice en los manuales; el error que da es que no encuentra el archivo cuando escribo perl nombre.pl. Gracias.
salvadorva
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2009-04-21 13:23 @599

Publicidad

Notapor explorer » 2009-04-21 13:40 @611

Bienvenido a los foros de Perl en Español, salvadorva.

Sería mejor ver una copia exacta del mensaje de error, pero en principio no necesitas más que indicarle al intérprete perl dónde está el programa que quieres ejecutar.

Si estás en el mismo directorio donde está ese programa, te vale con perl nombre.pl. Si está en otro directorio, pues perl /directorio/en/forma/absoluta/al/nombre.pl o perl directorio/de/forma/relativa/al/nombre.pl. Vamos, lo mismo que se ejecutaría cualquier programa en Linux.

Yo también uso Suse 11.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Podrias ayudarme a instalar el módulo telnet

Notapor salvadorva » 2009-04-21 17:19 @763

Gracias por tu ayuda. Llevaba algunos días con eso.

Es que tengo que hacer un proyecto usando Telnet. Ya lo descargué y desempaqueté, pero aún no funciona en Perl.

Según las instrucciones debo correr el archivo Makefile.PL. Al correrlo me sale este mensaje

Código: Seleccionar todo
perl /IO-Socket-Telnet-0.02/Makefile.PL
Can't locate inc/Module/Install.pm in @INC (@INC contains: /usr/lib/perl5/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/5.10.0 /usr/lib/perl5/site_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.10.0 /usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl .) at /IO-Socket-Telnet-0.02/Makefile.PLline 2.
BEGIN failed--compilation aborted at /IO-Socket-Telnet-0.02/Makefile.PL line 2.


No sé si está mal el Telnet que bajé. Y gracias por tu ayuda.
salvadorva
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2009-04-21 13:23 @599

Notapor explorer » 2009-04-21 18:00 @791

No, no... así no se instalan paquetes en Perl, en los sistemas Linux modernos.

Tienes que seguir esta rutina (en tu SuSE 11):

Primero tienes que comprobar si el módulo está ya instalado. Ejecuta desde la línea de comandos:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
perl -MMódulo -e 1
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Si no sale nada, es que está instalado.

Si no lo está, hay que seguir este guión:

1.- Arranca el administrador del sistema YaST (Inicio->Sistema->Configuración del Administrador o desde la línea de comandos: yast2) Se te pedirá la contraseña del root para poder seguir.

2.- En el centro de Control YaST, vas a Software y pulsas sobre Instalar / desinstalar software.

3.- Cuando arranque el programa de instalación de software, buscas por el módulo que quieres instalar. Por ejemplo, si quiero instalar algo que tenga que ver con Telnet, esa es la palabra que tengo que usar para buscar. A mí me sale perl-Net-Telnet como el único módulo perl relacionado con Telnet.

4.- Selecciono el/los paquetes que quiero instalar y pulso en el botón Aceptar.

Muy fácil, ¿no?

Ahora bien... no todos los módulos que hay en CPAN están disponibles para ser instalados desde la distribución SuSE 11.

Si no encontramos el que queremos, entonces usaremos el comando cpan:

1.- Abre una terminal de línea de comandos (p.ej.: Konsole: Inicio->Sistema->Terminal->Konsole).

2.- Hazte administrador con el comando su -. Pon la contraseña del root.

3.- Ejecuta el comando: cpan Módulo::A::Instalar. Pon el nombre del módulo tal cual aparece en CPAN.

4.- La primera vez, cpan te preguntará unas cuantas cosas, para configurarse. La mayor parte de las preguntas se contesta con la respuesta que te dan por defecto. Importante saber elegir la posición del espejo de CPAN más cercano a tu posición geográfica. Repito que solo hay que hacerlo una vez.

5.- cpan bajará, compilará, configurará, comprobará e instalará el módulo.

Vamos, cpan seguirá los mismos pasos que tu estás intentando hacer "a mano", pero siguiendo el método que indique el propio módulo.

Para comprobar si está instalado, vuelve a probar el comando de más arriba.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

¡Gracias!

Notapor salvadorva » 2009-04-21 20:37 @900

Muchas gracias por tu ayuda, me dejaron este proyecto en Linux y nunca lo había usado ni me dieron instrucciones, pero las que me diste me serán de gran ayuda, gracias.
salvadorva
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2009-04-21 13:23 @599

No me sale

Notapor salvadorva » 2009-04-22 10:28 @478

:( Por medio del yast lo instala supuestamente, perl-net-telnet, pero al ejecutar los programas no funciona, da el error,
Código: Seleccionar todo
Can't locate net/telnet.pm in @INC (@INC contains: /usr/lib/perl5/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/5.10.0 /usr/lib/perl5/site_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.10.0 /usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl .) at /proyecto/proyecto.pl line 2.
BEGIN failed--compilation aborted at /proyecto/proyecto.pl line 2.

Y por medio de cpan desde la consola
Código: Seleccionar todo
linux-1l91:/home/salva # cpan telnet
CPAN: Storable loaded ok (v2.18)
Going to read /root/.cpan/Metadata
  Database was generated on Tue, 21 Apr 2009 23:27:01 GMT
Warning: Cannot install telnet, don't know what it is.
Try the command

    i /telnet/

to find objects with matching identifiers.
CPAN: Time::HiRes loaded ok (v1.9711

No sé cómo debería poner para que funcione desde la consola, si pudieras decirme cómo se debe poner cpan "xxxxx"

Gracias.
salvadorva
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2009-04-21 13:23 @599

Notapor explorer » 2009-04-22 10:49 @492

No... tienes que prestar atención a la nomenclatura. Si un módulo, en Perl está escrito como
Código: Seleccionar todo
Net::Telnet

entonces, en los programas Perl, debes usarlo TAL CUAL está así escrito. Por ejemplo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use Net::Telnet;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Observa... que... el primer error dice que no encuentra el módulo net::telnet... ¡Y TIENE RAZÓN! Fíjate...

Tú has instalado
Código: Seleccionar todo
Net::Telnet
y estás intentando usar
Código: Seleccionar todo
net::telnet
¿Ves ahora las diferencias? ;)

El segundo error es parecido. El comando cpan te está diciendo que no ha encontrado ningún módulo en CPAN que se llame 'telnet'. Y te recomienda que entres en la línea de comandos de cpan(*) y pruebes a buscar qué módulos más se parecen, con la orden i /telnet/.

Como te decía en el mensaje anterior, debes prestar atención a las mayúsculas y minúsculas. Prueba con cpan Net::Telnet.

Ahora bien, si ya lo has instalado con YaST, entonces no necesitas usar el comando cpan.

(*) La línea de comandos de cpan aparece si ejecutas el comando si ningún argumento.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor salvadorva » 2009-04-22 14:34 @648

¡¡Mil gracias!!, eso era, ya me funciona.
salvadorva
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2009-04-21 13:23 @599

¡un nuevo error!

Notapor salvadorva » 2009-04-23 14:09 @631

Hola, fíjate que tengo un nuevo problema, al ejecutar mi código siempre me tira este error pattern match timed-out at /proyecto/ejemplo.pl line 17.

Copié y corrí un ejemplo de la página CPAN y ese error tira también, ¿será que me hace falta configurar algo?
salvadorva
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2009-04-21 13:23 @599

Notapor explorer » 2009-04-23 14:14 @635

Si no muestras el código, es difícil ayudarte...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Siguiente

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron