http://www.perlmonks.org?node_id=728777


in reply to Re: In search of an efficient query abstractor
in thread In search of an efficient query abstractor

Hmmm. Good catch, although I thought I had a test case to ensure that was handled correctly. I'll check that :) You seem to know more about regexes than I do. Why would you guess this particular regex is slow? Line-by-line profiling proves that it is consuming the vast majority of the time. It consumes almost 300 CPU seconds, and the next most expensive line in this code consumes 89 seconds, on an 8GB file.

The next-most-worst offender is

$query =~ s/(?<=\w_)\d+(_\d+)?\b/$1 ? "N_N" : "N"/eg;

followed by

$query =~ s/\s{2,}/ /g;