Perl中的逻辑运算符或赋值不起作用?

geo*_*rea 0 perl

我想检查我的变量$ id是否等于497或等于200,如果$ id不等于497或$ id不等于200则邮件,但是当我运行下面的示例时,我手动设置$ id = 497,但运行代码,它的打印"不等于\n";

my $id = 497;
if($id != 497 || $id != 200)
   {
      print "not equal\n";
   }
else
  {
      print "equal , not to mail\n";
   }
Run Code Online (Sandbox Code Playgroud)

yst*_*sth 6

它说不相等因为$id != 200是真的. ||如果任一操作数为true,则返回true.

你想说:

if ($id != 497 && $id != 200)
Run Code Online (Sandbox Code Playgroud)

因此,仅当$ id既不是497或200时,也不会打印.