爲什麼這個腳本總是返回 「你贏了」?
print "Choose heads or tails :\n";
$answer = <STDIN>;
chomp $answer;
if($answer == "heads") {
print "You won\n";
}
else {
print "Moron! You lost.\n"
}
什麼應該是正確的代碼相同?
爲什麼這個腳本總是返回 「你贏了」?
print "Choose heads or tails :\n";
$answer = <STDIN>;
chomp $answer;
if($answer == "heads") {
print "You won\n";
}
else {
print "Moron! You lost.\n"
}
什麼應該是正確的代碼相同?
Perl中的字符串比較使用eq
而不是==
。請嘗試:
if ($answer eq "heads")
如果您正在比較您使用的號碼==
。
瞭解更多關於它的帖子在學習Perl的,我建議你用use strict;
和use warnings;
啓動腳本。這樣你會得到這種操作的警告。它也將幫助你拼寫錯誤的變量。
http://stackoverflow.com/questions/1175390/how-do-i-compare-two-strings-in-perl – j0nes
使用'使用警告;' – perreal
並'使用strict;'。他們會提醒你這個問題(參數「頭」不是數字eq(==)中的數字),並且在使用它之前你還沒有聲明你的'$ answer'變量。 – Quentin