if语句的Perl简写
我有以下Perl代码:if语句的Perl简写,perl,if-statement,Perl,If Statement,我有以下Perl代码: next if ++$count == 1; 这应该相当于 if (++$count == 1) { next; } 是否有办法运行下一步如果我添加更多条件?(例如,如果+++$count等于1或大于其他值?我认为 如果+++$count==1或$count>$other\u值,则下一步; 应该只是工作,但是它很密集,依赖于增量的副作用和优先顺序 我很想加上括号,把增量移走 $count++; next if ($count == 1) or ($count
next if ++$count == 1;
这应该相当于
if (++$count == 1) {
next;
}
是否有办法运行
下一步代码>如果我添加更多条件?(例如,如果+++$count等于1或大于其他值?我认为
如果+++$count==1或$count>$other\u值,则下一步;
应该只是工作,但是它很密集,依赖于增量的副作用和优先顺序
我很想加上括号,把增量移走
$count++;
next if ($count == 1) or ($count > $other_value);
我想大概
如果+++$count==1或$count>$other\u值,则下一步;
应该就行了。虽然它相当密集,而且依赖于增量的副作用和优先顺序
我很想加上括号,把增量移走
$count++;
next if ($count == 1) or ($count > $other_value);
如果要针对两个单独的条件测试$count
的递增值,最好在单独的语句中递增,而不是针对+$count
和$count
分别测试一次
所以你的代码是
++$count;
next if $count == 1 or $count > $some_other_value;
如果要针对两个单独的条件测试$count
的递增值,最好在单独的语句中递增,而不是针对+$count
和$count
分别测试一次
所以你的代码是
++$count;
next if $count == 1 or $count > $some_other_value;
试着用“和”-将它们放在一行中。免责声明,我已经13年没有使用过perl了。不是吗?一个数字不能同时等于1和大于其他值(不管逻辑要求是什么):@Bijan“一个数字不能同时等于1和大于其他值”1等于1且大于0。它不在我的代码中,但$count已初始化为0。因此,++$count将使其立即变为1,并将它们放在一行中。免责声明,我已经13年没有做过perl了,是吗?一个数字不能同时等于1和大于某个其他值无论逻辑调用什么:)@Bijan“一个数字不能同时等于1和大于某个其他值”1等于1和大于0。这不在我的代码中,但$count已初始化为0。因此,++$count会使其立即变为1只需注意,或
一旦找到一个true
值,其他值就不会被计算,因为或
中的任何真值都会将整件事呈现为true
@Zuzlx,这没问题,或
的RHS在任何情况下都不会引入任何副作用?@Zuzlx只要++
在第一个命令上,这就没关系了。@Bijan是的,但最好不要在复杂的表达式中包含修饰符,因为有这样的陷阱,这就是我移动它的原因。我认为这是一个值得注意的问题。我不知道还有什么好说的,除了虫子只要注意,只要找到true
值,其他的值就不会被评估,因为或
中的任何真值都将整个过程呈现为true
@Zuzlx,但这是正常的,或
的RHS在任何情况下都不会引入任何副作用?@Zuzlx只要++
在第一个命令上,这就没关系了。@Bijan是的,但最好不要在复杂的表达式中包含修饰符,因为有这样的陷阱,这就是我移动它的原因。我认为这是一个值得注意的问题。我不知道还有什么好说的,除了虫子