我昨天开始学习Perl。我写了这段代码:
print "Please type in your password.\n";
print "Password: ";
chomp($password = <>);
if ($password == "admin")
{
print "Password is correct!";
}
else
{
print "Password is incorrect!";
}
当我写“admin”时,它告诉我密码是正确的,但是当我写下所有其他密码时,它告诉我同样的事情。就像if不执行一样。我该怎么办?
答案 0 :(得分:5)
比较运算符&#34; ==&#34;用于比较数字,而运算符&#34; eq&#34;用于比较字符串。
答案 1 :(得分:4)
要比较字符串,请使用eq
运算符。我也经常犯这个错误。
…
if ($password eq "admin")
…
如果您在字符串上使用==
运算符,则会转换字符串中包含的数字:foo
变为零,2foo
变为2
答案 2 :(得分:2)
Perl使用eq而不是==进行字符串比较。
更改
if ($password == "admin")
{
print "Password is correct!";
}
到
if ($password eq "admin")
{
print "Password is correct!";
}