我是Perl的新手,如果满足两个条件,我会尝试使用以下代码执行print语句。
if ($ARGV[0] eq "test") && ($ARGV[1] eq "test1"){
print"test and test1 Selected\n"
}
如何调整代码使其不会出现任何错误?
答案 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
。将符号用于分隔符(例如,
,;
,{ ... }
等)是有原因的,因为它可以让您更容易在代码中找到边界,从而提高可读性
因此,到目前为止最常用的惯例是使用or
和and
进行流量控制(or die
,or next
,or return
,等等,并在表达式中使用||
和&&
(就像你一样)。
答案 1 :(得分:3)
您可以将这些条件置于if-clause的内。
if (($ARGV[0] eq "test") && ($ARGV[1] eq "test1")) {
print"test and test1 Selected\n"
}
(所以我对逻辑连词运算符的粗略描述做了不必要的补充,有一些令人困惑的问题,引起批评,我完全删除它。)
对于你的问题,我认为只需嵌套使用括号即可。