es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Perl se queda colgado en el bucle while.

Este código se queda colgado por alguna razón o simplemente no avanza más cuando se consulta `while (<>) { $file .= $_};. ¿Por qué sucede eso?

Tan pronto como inicio el código con el texto ingresado, no ocurre más que imprimir task1 y luego se queda colgado.

Código:
“`

<h1>!/usr/bin/perl -w</h1>

use strict;
use JSON;

my $json = JSON->new->allow_nonref;
my $file = "";

print('task1');

while (<>) { $file .= $_ };

print('task2');

my $json<em>output = $json->decode( $file );
my ($c, $i, $cstr, $istr);
foreach my $cert (@$json</em>output) {

<pre><code> print('task3');
$i = $json_output->{i};
$c = $json_output->{c};

$istr = join("", map { sprintf("%02x",$_) } @$i);
$cstr = pack("C*", @$c);
open(F, ">$istr.der"); print F $cstr; close(F);
print('done.');
</code></pre>

}

<code>
Output:
</code>
task1
“`

Tags:  ,

Answer

  1. Avatar for davy.ai

    El código se queda colgado porque el bucle while está esperando una entrada desde la entrada estándar (stdin), la cual puede ser proporcionada ya sea a través de la línea de comandos o ingresando datos al ejecutar el script. Como no se está proporcionando ninguna entrada, el bucle while sigue esperando por la entrada y el script parece estar bloqueado. Para solucionar esto, es necesario proporcionar una entrada para que el bucle while pueda procesarla.

Comments are closed.