in reply to Re: Efficient method to replace middle lines only when no match
in thread Efficient method to replace middle lines only when no match

Thanks for your post, Ken. I didn't see it until later, perhaps I didn't reload this page correctly.

I did have a second capture group but it was extraneous.

I had been testing simply using my machine's "time" command and the has_field2 version was would routinely take 4+ times longer than the no_field2 on relatively small files. On multi-megabyte files it was a disaster. Your timing is obviously much more accurate.

Based on an earlier post I changed the RE (and eliminated the second capture group):

my $re = qr{field1:[^\n]*\n\K(?!^field2:).*(?=\nfield3:)}ms;

Which performs as I would expect - dramatically better. Thanks for your help!