Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Slow Regex - How to Optimize

by rnahi (Curate)
on Aug 30, 2005 at 21:56 UTC ( #487962=note: print w/ replies, xml ) Need Help??


in reply to Slow Regex - How to Optimize

I would use a different approach, i.e. make a single string from your @sub_code and apply the search for each key just once.

#untested my $code = join("", @sub_code); foreach my $sub ( keys %SUBS ) { while ( $code =~ /\b$sub\b\(/g ) { push( @subs, $sub ) ; } }

Notice that your code has a subtle bug. If the same routine is used twice in oone line, you'll get it only once. E.g.:  sqrt(x) + sqrt(y)

BTW, what is that $key in your code?


Comment on Re: Slow Regex - How to Optimize
Select or Download Code
Re^2: Slow Regex - How to Optimize
by Anonymous Monk on Aug 30, 2005 at 23:16 UTC
    Notice that your code has a subtle bug.
    Even if he is running the code through CPP first (to strip out comments, expand macros, rejoin lines), he still has plenty of corner cases to worry about (strings, fucntion pointers, etc)...
    #define p printf int mai\ n/*this is a comment: main()*/(int argc, char **argv) { int (*f)(int, char **) = &main; p("hello world: main()\n"); if(argc>0) f((argc-1),argv); }
      Oh, and don't forget that [^a-zA-Z] matches "(" and that C identifiers can have digits and underscores...
      _foo2bar((4),2);

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://487962]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (13)
As of 2014-10-23 18:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (128 votes), past polls