Not having any of the data that you're working with, all I can do is offer suggestions that may or may not help - I can't actually test them out to see that if they don't work, I can keep my mouth shut. ;-)
So, I'm just curious what happens when you a) use a regexp optimiser from CPAN to "optimise" $big_string (of course, proving that the optimisation didn't break anything would be a bit painful), and b) pre-compile your @strings - e.g.:
print
'$text = ', length $text, " characters\n",
'$big_string = ', length $big_string, " characters\n",
'@strings = ', scalar @strings, " items\n\n";
my $big_regexp = Regexp::Optimizer->new()->optimize($bit_string);
my @small_regexps = map { qr/$_/i } @strings;
my %cases = (
'one_large' => sub { if($text=~/(stuff?)m0r3(?:[^:]*\.)?($big_regex
+p)/i){my $match="$1:$2"}},
'many_small' => sub { for(@small_regexps){ if($text=~/(stuff?)m0r3(?
+:[^:]*\.)?($_)/i){my $match="$1:$2"}}},
);
cmpthese( 0, \%cases);
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.