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

Perl中实现循环的各种方法(基础)

发布时间:2020-12-16 00:15:55 所属栏目:大数据 来源:网络整理
导读:? Perl中有多种方法实现循环: 常规的while循环: my?$ i ?=? 0 ; ? while($i? ? scalar ?@array)?{ ? ????print?$i,?":?",?$array[$i]; ? ????$i++; ? }? Perl同样支持until关键字: my?$ i ?=? 0 ; ? until($i? =?scalar?@array)?{ ? ????print?$i,248); t

?Perl中有多种方法实现循环:

常规的while循环:

 
 
  1. my?$i?=?0; ?
  2. while($i?<?scalar?@array)?{ ?
  3. ????print?$i,?":?",?$array[$i]; ?
  4. ????$i++; ?
  5. }?

Perl同样支持until关键字:

 
 
  1. my?$i?=?0; ?
  2. until($i?>=?scalar?@array)?{ ?
  3. ????print?$i,248); text-indent: 28px; font-family: 宋体; font-size: 14px; line-height: 28px; ">do循环基本跟等价于上面的形式(当@array是空的时候,将会有一个警告信息):

     
     
    1. my?$i?=?0; ?
    2. do?{ ?
    3. ????print?$i,?$array[$i]; ?
    4. ????$i++; ?
    5. }?while?($i?<?scalar?@array); ?

    ????$i++; ?
  4. }?until?($i?>=?scalar?@array);?

基本的C风格循环同样有效。注意,我们如何把一个my变量放在for语句中,这是通过在循环范围内定义变量$i实现的:

 
 
  1. for(my?$i?=?0;?$i?<?scalar?@array;?$i++)?{ ?
  2. ????print?$i,?$array[$i]; ?
  3. } ?
  4. #?$i?has?ceased?to?exist?here,?which?is?much?tidier.?

for循环被认为是古老的形式,并且尽可能避免使用。原生的列表迭代更美观。注意:和PHP不一样,for和foreach关键字是同义词。我们只用更容易阅读的方式:

 
 
  1. foreach?my?$string?(?@array?)?{ ?
  2. ????print?$string; ?
  3. }?

如果你需要索引,?range operator可以创建一个匿名整型列表:

 
 
  1. foreach?my?$i?(?0?..?$#array?)?{ ?
  2. ????print?$i,?$array[$i]; ?
  3. }?

你不能去迭代一个哈希变量。但是,你可以迭代它的键值。使用keys内置函数,获取哈希变量的所有键值数组。然后使用foreach方法,就像数组一样:

 
 
  1. foreach?my?$key?(keys?%scientists)?{ ?
  2. ????print?$key,?$scientists{$key}; ?
  3. }?

因为哈希变量没有顺序,键值可能以任何顺序被返回。使用sort内置函数对键值数组排序,按照字母表从小到大的方式:

 
 
  1. foreach?my?$key?(sort?keys?%scientists)?{ ?
  2. ????print?$key,248); text-indent: 28px; font-family: 宋体; font-size: 14px; line-height: 28px; ">如果使用默认的迭代,你只能在循环内部放置一条语句,你可以使用超级短的循环语法:

     
     
    1. print?$_?foreach?@array;?

(编辑:李大同)

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

    推荐文章
      热点阅读