有条件地从这个Perl循环中有条件地“最后”的方法有一个更清洁的方法吗?

前端之家收集整理的这篇文章主要介绍了有条件地从这个Perl循环中有条件地“最后”的方法有一个更清洁的方法吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
不太了解Perl,我一直在通过友好的搜索引擎帮助Perl脚本.

我发现如果条件成立,我需要在设置一个标志的时候突破一个循环:

foreach my $element (@array) {
    if($costlyCondition) {
        $flag = 1;
        last;
    }
}

我知道使用“最后”的更好的方式是这样的:

foreach my $element (@array) {
    last if ($costlyCondition);
}

当然,这意味着,虽然我可以享受句法糖,但我不能把我的旗帜设置在循环中,这意味着我需要在外面再次评估$US $US $条件.

有没有更清洁的方法来做到这一点?

解决方法

你可以使用do {…}块:
do {$flag = 1; last} if $costlyCondition

你可以使用,运算符来加入语句:

$flag = 1,last if $costlyCondition;

您可以使用逻辑&&&操作符:

(($flag = 1) && last) if $costlyCondition;

甚至更低的优先级和:

(($flag = 1) and last) if $costlyCondition;

在一天结束时,没有任何真正的理由去做任何这些.它们都与原始代码完全相同.如果您的原始代码可行,并且清晰可见,请保留原样.

原文链接:https://www.f2er.com/Perl/171554.html

猜你在找的Perl相关文章