LogicalOperators:我们何时使用运算符OR,何时使用||

时间:2017-02-10 06:48:42

标签: perl

我正在使用Perl编写一个小脚本,我很困惑哪个逻辑运算符必须用于比较字符串

示例代码:

if (($app eq "appname1")OR($app eq "appname2")OR($app eq "appname3"))

我是否必须使用OR(或)||

2 个答案:

答案 0 :(得分:6)

一般的经验法则往往是:

  • 使用||组合布尔操作,例如if ($app eq "appname1" || $app eq "appname2" || $app eq "appname3") { ... }
  • 使用or进行流量控制,例如open my $fh, '<', $filename or die "Open failed: $!"
  • 如有疑问,请使用括号,或者您认为读者可能不清楚所得到的结构(包括您自己在六个月内)

答案 1 :(得分:4)

在这种情况下,它并不重要,因为:

  1. 您正在使用具有最高优先级的括号
  2. eq的优先级高于||or
  3. 这是perlop所说的:

      

    Binary&#34; or&#34;返回两个周围的逻辑分离   表达式。除了极低之外,它等同于||   优先级。

    另请注意,OR(大写)不是有效的Perl运算符,但or(小写)是。