Póster por primera vez y perl noobie a tiempo parcial.Cómo detener la entrada en Perl?
Estoy haciendo un juego de reflejos. Aquí está la salida -
__________________________________________________________________________
Reflex game initiated. Press ENTER to begin the game, and then press ENTER
after the asterisks are printed to measure your reflexes!.
*************************
Your result: 0.285606 seconds.
logout
[Process completed]
__________________________________________________________________________
Hay un pequeño problema, aunque - No es 0-10 segundos (basado en una variable aleatoria) después de pulsar ENTER para iniciar el juego y antes de la impresión de las estrellas. Durante ese tiempo, si el jugador presiona ENTRAR, se registra como su tiempo reflejo. Así que necesito una forma de evitar que mi código lea su botón ENTER antes de que se impriman las estrellas. El código -
#!/usr/bin/perl
use Time::HiRes qw(sleep);
use Time::HiRes qw(gettimeofday);
#random delay variable
$random_number = rand();
print "Reflex game initiated. Press ENTER to begin the game, and then press ENTER after the asterisks are printed to measure your reflexes!.\n";
#begin button
$begin = <>;
#waits x milliseconds
sleep(10*$random_number);
#pre-game
$start = [ Time::HiRes::gettimeofday() ];
print "\n****************************\n";
#user presses enter
$stop = <>;
#post game
$elapsed = Time::HiRes::tv_interval($start);
#delay time print
print "Your result: ".$elapsed." seconds.\n";
las estrellas no se imprimieron en la salida, lo siento. están justo entre 'tus relexes' e 'impreso para medir tus reflejos'. – user1472747
posible duplicado de [Flushing Perl STDIN buffer] (http://stackoverflow.com/questions/7602861/flushing-perl-stdin-buffer) – pilcrow