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!
In reply to Re^2: Efficient method to replace middle lines only when no match
by Zu
in thread Efficient method to replace middle lines only when no match
by Zu
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |