However, I'd still shy away from using .*?. Consider the effect of a slight change of the string we are matching against (basically, replacing the \cB with \cA):
use Benchmark qw( cmpthese ); my $ad = <<'__EOI__'; ------ Yahoo meow meow meow meow meow meow meow meow woof woof woof woof jabberwocky foo bar! foo!! __EOI__ my $email = join '', map chr(rand(26)+ord('a')), 1..2000; our $file = "$email\n$ad\cA" x 1000; cmpthese(-3, { ikegami => 'use strict; use warnings; my $x = our $file; $x +=~ s/----- - Yahoo.*?(?=\cB)//sg;', JavaFan => 'use strict; use warnings; my $x = our $file; $x +=~ s/----- - Yahoo[^\cB]*+//g;', JavaFan_noplus => 'use strict; use warnings; my $x = our $file; $x +=~ s/----- - Yahoo[^\cB]*//g;', }); __END__ (warning: too few iterations for a reliable count) Rate ikegami JavaFan JavaFan_noplus ikegami 0.264/s -- -98% -98% JavaFan 16.2/s 6053% -- -1% JavaFan_noplus 16.5/s 6135% 1% --
In reply to Re^4: How do I delete from a delimiter to the end of a file?
by JavaFan
in thread How do I delete from a delimiter to the end of a file?
by wcw
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |