字符串比较神秘失败

Exo*_*ist 1 perl

可能重复:
如何比较Perl中的两个字符串?

为什么这个脚本总是返回"你赢了"?

print "Choose heads or tails :\n";
$answer = <STDIN>;
chomp $answer;

if( $answer == "heads" ) {
    print "You won\n";
}
else {
    print "Moron! You lost.\n"
}
Run Code Online (Sandbox Code Playgroud)

什么应该是相同的正确代码?

Qia*_*iau 14

Perl中的字符串比较使用eq而不是==.尝试:

if ($answer eq "heads")
Run Code Online (Sandbox Code Playgroud)

如果您要比较您使用的数字==.

perlmonks的帖子中阅读更多相关信息.

学习Perl时,我建议你用use strict;和开始你的脚本use warnings;.这样你就会收到这种操作的警告.它还可以帮助您解决拼写错误的变量.

  • @Exorcist - 你用什么资源学习Perl?有些已经很老了,已经过时了. (3认同)
  • @Exorcist,我们列出了[好教程](http://perl-tutorial.org/)(和坏),以帮助新手学习正确的方法.Perl已经存在了很长时间,很多旧的(坏的)教程仍然存在于互联网上.选择其中一个好的并继续学习.:-) (2认同)