laziness, impatience, and hubris | |
PerlMonks |
Re^3: Regex and question of designby grinder (Bishop) |
on Apr 14, 2005 at 12:28 UTC ( [id://447734]=note: print w/replies, xml ) | Need Help?? |
A bunch of simple matches can be more efficient than a single, more complicated, match. True, but I must take you up on two issues. Firstly, you are paying for the cost of the construction of the assembled pattern each time through the loop. In practise one would do this only once per run. Hoisting that out of the benchmarked code would make the figures more accurate. Secondly, I wouldn't bother with such an approach for two patterns. It only starts to come into its own for a larger number. Where the sweet spot lies, I don't know... my educated guess is more than 10, less than 20. But even when you have as few as ten patterns, you have to start worrying about putting /foobar/ before /foo/. Failing to do so will result in 'foobar' never being matched ('foo' will succeed instead). If you have /bin/, /bat/, /bar/, /bong/, ... it is rather wasteful to match against all four and still have it fail just because the target string happens to be is 'bone'. That is what I meant when I talked of efficiency. - another intruder with the mooring in the heart of the Perl
In Section
Seekers of Perl Wisdom
|
|