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


in reply to Slow Regex - How to Optimize

As usual, I didn't explain the concept of what I'm trying to accomplish along with the problem.

I gather a list of created subroutines by parsing the .h files. That creates %SUBS.

For each $sub in %SUBS I need to gather all the subroutines that the $sub calls, but only if is exists in %SUBS.

From all your inputs I have learned how to work with the code as a string and apply the regex in a while loop which is so far much faster. I'm trying something like:

while ( $data =~ /\b([a-zA-Z]+)\b\s*\(/g ) { print "$1\n"; }
Thanks for the direction! I'll post results and look for more advice.