忽略文件中的行直到匹配并在此之后处理行

时间:2013-08-20 07:11:19

标签: perl

我正在循环文件中的行,当匹配特定行时,我想处理当前(匹配)行之后的行。我能做到: -

open my $fh, '<', "abc" or die "Cannot open!!"; 
while (my $line = <$fh>){
   next if($line !~ m/Important Lines below this Line/);
   last;
}
while (my $line = <$fh>){
   print $line;
}

有没有更好的方法(代码需要成为更大的perl脚本的一部分)?

1 个答案:

答案 0 :(得分:7)

我使用flip-flop operator

while(<DATA>) {
    next if 1 .. /Important/;
    print $_;
}
__DATA__
skip
skip
Important Lines below this Line
keep
keep

<强>输出:

keep
keep