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.