Perl在打开文件句柄内读取子节

时间:2017-08-18 14:01:59

标签: perl filehandle

我使用以下方法打开文件:

open (FH, "<".$File::Find::name) or die "cannot open file \"".$File::Find::name." \"!";
while (<FH>) {
  ...my code...  
}

我使用正则表达式解析行以获取我想要的数据。 现在我想读一个文件的一个子部分,直到我在while循环中看到该子部分的结尾。 即:逐行读取“StartSection”直到“EndSection”:

open (FH, "<".$File::Find::name) or die "cannot open file 
\"".$File::Find::name." \"!";
while (<FH>) {
  ...my code...
  if (/^StartSection$/) {
    while (<FH> !~ /^EndSection) {
      ... more code....
    }
  }
}

我如何在Perl中正确编程?

1 个答案:

答案 0 :(得分:2)

我可以想出几个方法来回答这个问题,但我会回答flip-flop operator的答案:

while (<FH>) {
   if (/^StartSection$/ .. /^EndSection/) {
       ... special code ...
   } else {
       ... regular code ...
   }
}