in reply to Inexplicably slow regex

I think you've left out some data... like what is the contents of your variable before the =~. The /m is clearly changing the behavior of the ^, which I am assuming that you are doing this because you are searching through an entire file. Given the m changing the behavior of the ^ it is likely that it is changing to a much more complicated statement than \n. I know the docs state that the ^ and $ become \n or equivalent, but it may evaluate to something much more complicated. Finally you're not really providing context for how you are actually exec'ing this code. I can imagine that if this is within an eval or something, that it would be a hit if every time that it was eval'd it has to interpret the regex... the second regex has much less processing to do than the first one.

Replies are listed 'Best First'.
Re^2: Inexplicably slow regex
by Anonymous Monk on Sep 12, 2006 at 19:44 UTC
    The data I'm searching is a 0.5MB text file. The search is performed only once so evaluating the regex shouldn't be an issue. I'm sure perl is doing something complicated internally with the ^. I'd like to know what. I'd also like a simpler alternative than my negative look-behind assertion on a negated character class to replace the ^ and still get decent performance.