Áp phích đầu tiên và bán thời gian perl noobie.Làm thế nào để dừng đầu vào trong Perl?
Tôi đang tạo trò chơi phản xạ. Đây là kết quả đầu ra -
__________________________________________________________________________
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]
__________________________________________________________________________
Có một vấn đề nhỏ - sau khi bạn nhấn enter để bắt đầu trò chơi và trước khi các ngôi sao được in. Trong thời gian đó, nếu người chơi nhấn ENTER, nó sẽ được ghi lại là thời gian phản xạ của họ. Vì vậy, tôi cần một cách để ngăn chặn mã của tôi từ đọc nút ENTER của họ trước khi các ngôi sao được in. Mã này -
#!/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";
các sao không in ở đầu ra, xin lỗi về điều đó. họ đang ở ngay giữa 'relexes của bạn:' và 'in để đo phản xạ của bạn'. – user1472747
có thể trùng lặp của [Flushing Perl STDIN buffer] (http://stackoverflow.com/questions/7602861/flushing-perl-stdin-buffer) – pilcrow