Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
if语句的Perl简写_Perl_If Statement - Fatal编程技术网

if语句的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

我有以下Perl代码:

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是的,但最好不要在复杂的表达式中包含修饰符,因为有这样的陷阱,这就是我移动它的原因。我认为这是一个值得注意的问题。我不知道还有什么好说的,除了虫子