如果在Perl中不起作用。我弄错了吗?

时间:2017-10-28 07:54:18

标签: perl

我昨天开始学习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不执行一样。我该怎么办?

3 个答案:

答案 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!";
}