Perl 读取打开文件句柄内的小节

Perl read subsection inside open file handle

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

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 中正确编程?

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

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