Perl随笔-生活工作点滴

Perl中eof函数

2019-07-06  本文已影响4人  生物信息与育种

常见三个用法:

1. eof FILEHANDLE
如果下一次对文件句柄的读取返回文件结束(end-of-file),或者是文件句柄没有打开,那么这个函数将返回真。

2. eof()
带小括号的eof函数是来测试 ARGV 文件句柄(最常见的就是 <> 里的空文件句柄)。

#在最后一个文件的最后一行前面插入一个划线
 while (<>) {
      if (eof()) {
         print "-" x 30, "\n";
      }
      print;
   }
open FQ1,"<$Input1" or die "$!\n";
open FQ2,"<$Input2" or die "$!\n";
while(! eof($FQ1)){
    # 读入第一个 fastq 文件的四行
    my $fq1_1=<FQ1>;
    my $fq1_2=<FQ1>;
    my $fq1_3=<FQ1>;
    my $fq1_4=<FQ1>;
    chomp($fq1_1,$fq1_2,$fq1_3,$fq1_4);
    # 读入第二个 fastq 文件的四行
    my $fq2_1=<FQ2>;
    my $fq2_2=<FQ2>;
    my $fq2_3=<FQ2>;
    my $fq2_4=<FQ2>;
    chomp($fq2_1,$fq2_2,$fq2_3,$fq2_4);
        .....
}

3. eof
不带任何参数的的 eof 表示为最后一次文件读动作返回文件结束状态

   # 为每个输入文件重置行计数
   while (<>) {
      next if /^\s*#/;   # 忽略注释
      print "$.\t$_";
   } continue {
      close ARGV if eof;   # 没有小括号
   }

Ref: https://blog.csdn.net/u014703817/article/details/32702815
https://github.com/Ming-Lian/Bioinformatics-skills/blob/master/%E5%AE%9E%E7%94%A8%E5%B0%8F%E8%84%9A%E6%9C%AC.md

上一篇下一篇

猜你喜欢

热点阅读