perl之文本文件的嵌套循环

Posted 计算表观遗传学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了perl之文本文件的嵌套循环相关的知识,希望对你有一定的参考价值。


前言

今天我们来解决一下两个文本文件的foreach嵌套循环问题。对于文件的嵌套循环不同于文本内容的循环,因为一个文件的foreach结束后,会自动关闭文件句柄,也就是说如果使用两层foreach读取文件,那么内层的foreach只能执行一次文本循环,所以对于内层循环的文本文件,需要在外层循环中打开,而不能只在循环体外进行一次文件读取,下面通过一个实例来解释整个过程。


1.仅执行一次内层循环:

输入:

1.txt

perl之文本文件的嵌套循环

2.txt

输出结果:

1

此时文件读取在循环体外,当外层foreach读取了FD1中的第一行数据时,内层foreach开始循环FD2,结束后自动关闭FD2,此时外层开始读取FD1中的第二行数据,FD2始终处于关闭状态。

代码:

open(FD1,"C:/Users/xxxx/Desktop/1.txt");
open(FD2,
"C:/Users/xxxx/Desktop/2.txt");

foreach $h1 (<FD1>){       
         foreach $h2(<FD2>){
                  if($h1==$h2){print$h1;}
                  }
         }

2.内循环随外循环执行多次:

输出结果:

1

3

5

代码:

open(FD1,"C:/Users/xxxx/Desktop/1.txt");
foreach $h1 (<FD1>){
         open(FD2,
"C:/Users/xxxx/Desktop/2.txt");
         foreach $h2(<FD2>){
                  if($h1==$h2){print$h1;}
                  }
         }


通讯邮箱:ad.cepi@edbc.org

投稿邮箱:scw.cepi@edbc.org

往期「精彩内容」,点击回顾

| |

|

  | |

精彩会议及课程,点击回顾




CEPI感谢您的支持!

ios系统用户专用通道)




以上是关于perl之文本文件的嵌套循环的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop Map Reduce - Iterable上的嵌套循环 reduce中的值忽略将文本写入上下文时的文本结果

打开高效文本编辑之门_Linux Awk之条件判断与循环

小白的perl语言之数据分割

文本 -T 和 PDF 的 Perl 文件测试

#Perl#使用perl合并多个文本

文本文件中的 Perl 字符串比较