in reply to some efficiency, please
Try this. It passes your test case :)
#!/usr/bin/perl # https://perlmonks.org/?node_id=1232492 use strict; use warnings; $_ = do { local $/; <DATA> }; my @del =map /^(?=(\d+)\n)(?=.*^bar\n)/ms, /^begin\n(.*?)^end\n/gms; my $pattern = do { local $" = '|'; qr/^\s+(foo )?ref (@del)\n/mn }; s/$pattern//gm; print; __DATA__ ref 1 ref 2 ref 3 ref 4 begin 1 end begin 2 bar end begin 3 end begin 4 bar end ref 5 foo ref 6 ref 7 begin 5 end begin 6 bar end begin 7 bar end
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: some efficiency, please
by haukex (Archbishop) on Apr 13, 2019 at 07:58 UTC | |
by tybalt89 (Monsignor) on Apr 13, 2019 at 08:44 UTC | |
|
Re^2: some efficiency, please
by Anonymous Monk on Apr 13, 2019 at 02:34 UTC | |
by dsheroh (Monsignor) on Apr 14, 2019 at 09:09 UTC |