perl中while循环+each函数遍历哈希易错点是什么

发布时间:2022-02-23 10:53:13 作者:小新
来源:亿速云 阅读:226

这篇文章给大家分享的是有关perl中while循环+each函数遍历哈希易错点是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

之前在使用perl时遇到一个比较奇怪的错误,程序大概是这样的: while(<IN>){my @line = split("\t",$_);my ($chr,$start,$end) = split(/[\:\-]/,$line[2]);while(my($key,$value) = eac...

之前在使用perl时遇到一个比较奇怪的错误,程序大概是这样的:

while(<IN>){
my @line = split("\t",$_);
my ($chr,$start,$end) = split(/[\:\-]/,$line[2]);
while(my($key,$value) = each %region){
my($a,$b,$c) = split(/[\:\-]/,$key);
next if($a ne $chr);
print "1\n" if($line[0] eq "BjuB010898");
if(($start >= $b) && ($end <= $c)){
print OUT $_;
last;
}
}
}

主要就是在一个循环中使用while和each遍历哈希,然而结果总是少了一些数据,后来将哈希改为数组,for循环数组后就没问题了。

网上查询原因才知道用 while 循环 + each 函数遍历哈希表的时候,如果提前跳出了while循环,那么下次再接着用 each 函数遍历该哈希表的时候,会从上次已经遍历过的关键字的下一个关键字处开始遍历,因此就会漏掉很多的数据。

因此在使用while遍历hash时,最好不要将其嵌套在一个循环中。

感谢各位的阅读!关于“perl中while循环+each函数遍历哈希易错点是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

推荐阅读:
  1. perl切片(数组和哈希)二
  2. C#遍历哈希表

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

perl while each

上一篇:perl程序中shift怎么用

下一篇:JS中attribute和property的区别有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》