Hola, al ejecutar tu script dice error en linea 16 o sea aqui: my $read = sysread $fd, my $buf, 256/8 or die "sysread: $!"; y dice "bad file descriptor". Sabes si yo hago algo mal, o puede ser en script hay algun error ?
Ouch, este error es de novatos. Yo soy el novato
.
Más que probablemente, el error es dos líneas más arriba, donde el sysopen, y es que no estoy comprobando si esto tiene éxito o no. Me da que está fallando, y el script sigue tan alegremente hasta que acaba petando más tarde.
sysopen my $fd, '/dev/urandom', O_RDONLY or die "sysopen: $!";
Con este cambio te petará en la línea 14, y tendremos un error nuevo.
Pero si estás en güindons, ahórrate el esfuerzo: no hay /dev/urandom en güindons
. Aunque por un pequeño incentivo le puedo añadir el generador de aleatorios
.