我是一個perl noob,希望這個問題不是太愚蠢!Perl STDIN在while循環之前執行
我試圖寫一個hang子手風格的遊戲,並得到它所有的工作,除了由於某種原因,STDIN似乎在while循環的其餘部分之前執行 - 所以我被迫輸入我所有的字母猜測被打印出來任何東西之前
while()
{
foreach $letter (@currentword)
{
print "$letter";
}
print "\n";
print "Guess a letter: \n";
chomp($guess = <STDIN>);
$guess=lc(substr($guess,0,1));
if ($randword =~ /($guess)+/i)
{
print "Correct!\n";
for ($index=0; $index<$wordlength; $index++)
{
if ($wordarray[$index] eq $guess)
{
$currentword[$index]=$wordarray[$index];
}
}
}
else
{
print "Incorrect! try again\n";
}
$guesses -= 1;
last if $guesses < 1;
$finalword = join("",@currentword);
last if ($finalword eq $randword);
}
此代碼初始化'$ randword','$ wordlength','@ wordarray','後工作正常@ currentword'和'$ guesses'爲合理值。 – RobEarl
你能告訴我們更多的代碼 - 特別是你打開STDIN的地方嗎? –