in reply to Getting the next line after a match

Another way to do it is to adjust perl's input behavior slightly, in order to get it to read everything up to "Buffers" in one shot. Then, reset perl's input behavior to read line-by-line again: all that's left is the header's newline, and voila! You've got your data:

my $header = "Buffers"; # # or do it this way: # my $header = "Buffers ID Position ID Position ID +Position"; # $/ = $header; my $junk = <DATA>; $/ = "\n"; my $header_end_of_line = <DATA>; my $data = <DATA>; print $data; __DATA__ DDR -- Running -- # Event Snoopy Snoopy Replay Replay Current Current Buffers ID Position ID Position ID Position 1024 1667721 2975e7c 1667717 6d44e10 1667721 2982000 1023 1667720 2975e7b 1667716 6d44e09 1667720 2981999