• Publicidad

Error al correr un cron

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Error al correr un cron

Notapor adrian_sla » 2010-12-28 09:48 @450

¡Buenos días!
Mi nombre es Adrian y soy nuevo en el foro.

Necesito de su ayuda.

Estoy en el trabajo intentando correr un archivo .pl.

Al principio obtenía el error Can't locate blablabla.... Después que arregle eso, me sale el siguiente error:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Bareword "gensym" not allowed while "strict subs" in use at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/IO/Handle.pm line 308.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


La verdad que no tengo idea de qué puede ser...

Si alguien me puede dar una mano, se lo agradecería muchísimo.

Desde ya, muchas gracias.

Un saludo.
adrian_sla
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2010-12-28 09:35 @441

Publicidad

Re: Error al correr un cron

Notapor explorer » 2010-12-28 10:33 @481

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

Mira el código de Handle.pm. Al principio del programa verás una línea así:

use Symbol;

Cámbiala por

use Symbol qw(gensym);

A ver si con este cambio, se soluciona. Si no, quita la línea

use strict;
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

Re: Error al correr un cron

Notapor adrian_sla » 2010-12-28 12:29 @561

¡Hola!
¡Muchas gracias por tu respuesta!

Quité la línea use strict y ahora el error es el siguiente:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Can't bless non-reference value at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/IO/Handle.pm line 309,
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


estoy perdidísimo...
adrian_sla
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2010-12-28 09:35 @441

Re: Error al correr un cron

Notapor explorer » 2010-12-28 12:43 @571

Sospecho que tienes instalada la distribución IO v1.22 que es de septiembre del 2005.

Te aconsejo que instales una versión más moderna. La última es la v1.25, de mayo del 2009.

El número de versión lo sacas así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
perl  -MIO -le 'print  $IO::VERSION'
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
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

Re: Error al correr un cron

Notapor adrian_sla » 2010-12-28 13:54 @621

Voy a probar eso.
¡Muchas gracias!
adrian_sla
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2010-12-28 09:35 @441

Re: Error al correr un cron

Notapor adrian_sla » 2011-01-03 08:29 @395

¡Hola!
¡Feliz año nuevo para todos!

Sigo con el mismo problema. Instalé IO, pero igual me sigue tirando el mismo error:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Bareword "gensym" not allowed while "strict subs" in use at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/IO/Handle.pm line 308.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


¿Se podría solucionar instalando Perl otra vez?

Estoy trabajando con Linux.
adrian_sla
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2010-12-28 09:35 @441

Re: Error al correr un cron

Notapor explorer » 2011-01-03 09:20 @430

Si te vuelve a dar problemas en la línea 308, me suena a que sigues usando el IO::Handle viejo...

Yo tengo varios Linux. En uno de ellos hay un Perl v5.8.8 con un IO::Handle v1.25. En otro, un Perl v5.10.1 con un IO::Handle v1.28. Y ninguno de ellos tiene gensym en la línea 308.

Vuelve a ejecutar la línea que muestra el número de versión de IO::Handle, para saber si realmente estás usando la última versión.

De todas maneras, esto es muy raro: ninguna de las versiones de IO::Handle que yo tengo necesitan de ningún cambio especial (como lo de ampliar el use Symbol con qw/gensym/;, que sería lo normal para arreglar ese fallo), así que estoy empezando a sospechar que el problema es anterior.

¿Podrías crear un programa en Perl, mínimo, que reprodujera el mismo error que te sale? El mínimo número de líneas que hagan aparecer el error, aunque solo sean dos o tres.

Un caso como el tuyo no aparece en el listado actual de errores de IO::Handle.

Reinstalar Perl es una buena idea, teniendo en cuenta que estamos hablando de un 5.8.8, que es de hace unos cuantos años. El problema... es que Perl es un sistema crítico para docenas, y a veces cientos, de otros programas del sistema. La actualización de un Perl v5.8 a un v5.10 o un actual v5.12 es muy posible que te obligue a reinstalar la mayor parte de los sistemas críticos. En ese caso... casi mejor instalar un Linux moderno, y resuelves todos los problemas de un golpe.
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

Re: Error al correr un cron

Notapor adrian_sla » 2011-01-03 13:11 @591

¡Hola!

Ni siquiera me deja ver la versión. Tiré el comando que me pasaste y me dio el mismo error, pero me metí en el .pm y la versión es la 1.28.

Un programita para que tire el error podría ser:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use strict;
  2. use Symbol;
  3.  
  4. my $variable = gensym;
  5.  
  6. print STDOUT "\n\n$variable\n\n";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


pero en este caso, si saco el "use strict", anda bien.
adrian_sla
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2010-12-28 09:35 @441

Re: Error al correr un cron

Notapor explorer » 2011-01-03 13:46 @615

En mi viejo Perl:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
atari@aprosis4:~/desarrollo$ perl -MIO::Handle -le 'print $IO::Handle::VERSION'        
1.25
atari@aprosis4:~/desarrollo$ perl prueba.pl
[GLOB(0x814f988)]
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

O sea, que sí me funciona, y además, con la versión antigua.

Si no te funciona ni siquiera para sacar el número de versión, algo muy grave debe de estar pasando.

Con el siguiente programa podrás sacar la lista de módulos que está cargando, y así sabrás si está cargando el módulo correcto:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
perl -MIO::Handle -le 'print "$_ => $INC{$_}" for keys %INC'
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Debes prestar atención al directorio donde esté el módulo IO::Handle.

De todas maneras, prueba con este programa:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use Symbol 'gensym';
  4.  
  5. my $variable = gensym;
  6.  
  7. print "[$variable]\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
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


Volver a Avanzado

¿Quién está conectado?

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