不知道Perl,我一直在友好的搜索引擎的帮助下增强Perl脚本。有没有一种更简洁的方式来有条件地'超越'这个Perl循环?
我发现我需要跳出循环的同时设定了标志,如果条件成真:
foreach my $element (@array) {
if($costlyCondition) {
$flag = 1;
last;
}
}
我知道更好的方式使用“最后一次”是这样的:
foreach my $element (@array) {
last if ($costlyCondition);
}
当然,这意味着虽然我可以享受语法糖,但我无法在循环中设置我的标志,这意味着我需要再次在外面评估$costlyCondition
。
有没有更干净的方法来做到这一点?
后缀'if'确实只是一个语句。你的第一个更适用于一个条件的多条语句。 –
我认为在这种情况下if块是更好的选择。循环控件上的后缀条件的通常参数是它将更重要的代码放在左边。强调循环对于那些退出条件有多个退出条件。在这种情况下,如果您使用了某些提供的复合表达式,则结果只是将循环控制更深地嵌入到表达式中,使其更难以一目了然。 –
@Joel:你说得对。我留在原来的版本。 – ArjunShankar