我是Perl的新手,如果打印语句满足两个条件,我将尝试使用下面的代码来执行它。
if ($ARGV[0] eq "test") && ($ARGV[1] eq "test1"){
print"test and test1 Selected\n"
}如何调整代码,使其不会抛出任何错误?
发布于 2015-09-03 14:15:51
if语句的语法为:
if (CONDITION) BLOCK所以如果你的情况是
($ARGV[0] eq "test") && ($ARGV[1] eq "test1")然后你就会用
if (($ARGV[0] eq "test") && ($ARGV[1] eq "test1")) { ... }也就是说,这些括号是不需要的,因为&&就是这样使用的。
if ($ARGV[0] eq "test" && $ARGV[1] eq "test1") { ... }我不知道为什么另外两个人建议用优先级较低的and来伪装&&。将符号用作分隔符(例如,、;、{ ... }等)是有原因的,因为它使代码中的边界更容易一目了然,提高了可读性。
因此,到目前为止,最常用的约定是使用or和and进行流控制(or die、or next、or return等),并在表达式中使用||和&& (正如您所做的那样)。
发布于 2015-09-03 13:49:47
您可以将这些条件放在if-的中。
if (($ARGV[0] eq "test") && ($ARGV[1] eq "test1")) {
print"test and test1 Selected\n"
}(因此,我对逻辑连接操作符的粗略描述进行了不必要的添加,导致了一些令人困惑的问题,并引起了批评,认为我完全删除了它。)
对于您在这里的问题,我认为简单地使用括号的嵌套使用是重点。
https://stackoverflow.com/questions/32367829
复制相似问题