有条件地从这个Perl循环中有条件地“最后”的方法有一个更清洁的
发布时间:2020-12-15 22:02:25 所属栏目:大数据 来源:网络整理
导读:不太了解Perl,我一直在通过友好的搜索引擎帮助Perl脚本. 我发现如果条件成立,我需要在设置一个标志的时候突破一个循环: foreach my $element (@array) { if($costlyCondition) { $flag = 1; last; }} 我知道使用“最后”的更好的方式是这样的: foreach my
不太了解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; 在一天结束时,没有任何真正的理由去做任何这些.它们都与原始代码完全相同.如果您的原始代码可行,并且清晰可见,请保留原样. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |