如何使用&& Perl中的运算符

时间:2015-09-03 05:47:15

标签: perl

我是Perl的新手,如果满足两个条件,我会尝试使用以下代码执行print语句。

if ($ARGV[0] eq "test") && ($ARGV[1] eq "test1"){
print"test and test1 Selected\n"
}

如何调整代码使其不会出现任何错误?

2 个答案:

答案 0 :(得分:12)

if语句的语法是:

if (CONDITION) BLOCK

所以如果您的情况是

($ARGV[0] eq "test") && ($ARGV[1] eq "test1")

然后你会用

if (($ARGV[0] eq "test") && ($ARGV[1] eq "test1")) { ... }

那就是说,那些parens是不需要的,因为&&的意思是完全像那样使用。

if ($ARGV[0] eq "test" && $ARGV[1] eq "test1") { ... }

我不知道为什么其他两个人建议使用较低优先级&&伪装and。将符号用于分隔符(例如,;{ ... }等)是有原因的,因为它可以让您更容易在代码中找到边界,从而提高可读性

因此,到目前为止最常用的惯例是使用orand进行流量控制(or dieor nextor return,等等,并在表达式中使用||&&(就像你一样)。

答案 1 :(得分:3)

您可以将这些条件置于if-clause的内。

if (($ARGV[0] eq "test") && ($ARGV[1] eq "test1")) {
    print"test and test1 Selected\n"
}

(所以我对逻辑连词运算符的粗略描述做了不必要的补充,有一些令人困惑的问题,引起批评,我完全删除它。)

对于你的问题,我认为只需嵌套使用括号即可。