Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Avanzado » Error al correr un cron Responder al tema
Nuevo tema


Página 1 de 1  [ 9 mensajes ] 
 
Nota 2010-12-28 09:48 @450

Perlero Nuevo
Registrado: 2010-12-28 09:35 @441
Mensajes: 15
Error al correr un cron
¡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:
Syntax: [ Download ] [ Hide ]
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.


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.


Nota 2010-12-28 10:33 @481
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10250
Re: Error al correr un cron
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


Nota 2010-12-28 12:29 @561

Perlero Nuevo
Registrado: 2010-12-28 09:35 @441
Mensajes: 15
Re: Error al correr un cron
¡Hola!
¡Muchas gracias por tu respuesta!

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

Syntax: [ Download ] [ Hide ]
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,


estoy perdidísimo...


Nota 2010-12-28 12:43 @571
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10250
Re: Error al correr un cron
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í:
Syntax: [ Download ] [ Hide ]
Using bash Syntax Highlighting
perl  -MIO -le 'print  $IO::VERSION'

_________________
JF^D Perl programming


Nota 2010-12-28 13:54 @621

Perlero Nuevo
Registrado: 2010-12-28 09:35 @441
Mensajes: 15
Re: Error al correr un cron
Voy a probar eso.
¡Muchas gracias!


Nota 2011-01-03 08:29 @395

Perlero Nuevo
Registrado: 2010-12-28 09:35 @441
Mensajes: 15
Re: Error al correr un cron
¡Hola!
¡Feliz año nuevo para todos!

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

Syntax: [ Download ] [ Hide ]
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.


¿Se podría solucionar instalando Perl otra vez?

Estoy trabajando con Linux.


Nota 2011-01-03 09:20 @430
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10250
Re: Error al correr un cron
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


Nota 2011-01-03 13:11 @591

Perlero Nuevo
Registrado: 2010-12-28 09:35 @441
Mensajes: 15
Re: Error al correr un cron
¡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:

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. use strict;
  2. use Symbol;
  3.  
  4. my $variable = gensym;
  5.  
  6. print STDOUT "\n\n$variable\n\n";


pero en este caso, si saco el "use strict", anda bien.


Nota 2011-01-03 13:46 @615
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10250
Re: Error al correr un cron
En mi viejo Perl:
Syntax: [ Download ] [ Hide ]
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)]

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:
Syntax: [ Download ] [ Hide ]
Using bash Syntax Highlighting
perl -MIO::Handle -le 'print "$_ => $INC{$_}" for keys %INC'

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

De todas maneras, prueba con este programa:
Syntax: [ Download ] [ Hide ]
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";

_________________
JF^D Perl programming


Responder al tema  [ 9 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO