my $line_regex = qr/[^\n]*\n?/;
Thanks :) . Hm. And if we have some nonsense input: N and M, with file having less than N + M lines, then this regex deletes all lines. But earlier regex (without question mark) fails to delete too much lines. In that case we can set lower limit to greedy quantifier (add "0,"):
s/\A (?:$line_regex){0, $header_lines} //x;
>>But you need to go one step further in the example: show extraction of each remaining line for further processing.
chomp $whole_input;
parse( $_ ) for split /\n/, $whole_input;
But now it takes time for split :/
Upd.: these lines after split are without newlines. If that is important for parsing to have newlines, the first split parameter could be
/^/m