加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在Perl中使用带有while循环的continue块是否有优势?

发布时间:2020-12-16 06:26:49 所属栏目:大数据 来源:网络整理
导读:语法1: while {#some code }continue {#some other code } 语法2: while {#some code #some other code} SYNTAX 1是否比SYNTAX 2有任何优势?假设“某些代码”和“其他代码”在两种语法中保持相同的行集.或者它只有两种不同的样式没有编码优势. 解决方法
语法1:

while {
#some code 
}
continue {
#some other code 
}

语法2:

while {
#some code 
#some other code
}

SYNTAX 1是否比SYNTAX 2有任何优势?假设“某些代码”和“其他代码”在两种语法中保持相同的行集.或者它只有两种不同的样式没有编码优势.

解决方法

当您从循环中间调用next时,continue块会执行,因此它提供了一种在迭代之间执行某些公共代码的方法,而不管每次迭代的执行路径如何.

相比

my $last_item;
for my $item (@list) {
   if ($last_item eq $item) {
       do_something();
       $last_item = $item;
       next;
   }

   if (condition2($item,$last_item)) {
       $last_item = $item;
       next;
   }

   do_something_else();
   $last_item = $item;
}

my $last_item;
for my $item (@list) {
   if ($last_item eq $item) {
       do_something();
       next;
   }

   if (condition2($item,$last_item)) {
       next;
   }

   do_something_else();
} continue {
   $last_item = $item;
}

在野外继续的一些例子:

HTTP::Cookies

PPIx::Regexp::Node

PDL::Core

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读