note
demerphq
<p>
You should recommend people avoid constructs like: <code> [Jj][Aa][Vv][Aa] </code> as they are quite inefficient and also can blow out various optimizations just by their presence. Its better to write that (?i:Java). Also up until 5.9.2 perl doesnt optimise alternations very well so its advisable to use modules like [Regexp::List] or the like to preprocess <code>
/Lists|of|words/
</code>. OTOH as of 5.9.2 perl _does_ optimize them so using things like [Regexp::List] will only slow down your patterns (im hopeful by 5.10 these modules will be updated to Do The Right Thing Regardless™).
</p>
<p>
In fact if at all possible after that version it is recommended that you use alternations instead of using quantifier, bracketing. Ie, <code>
/(cars|cart|carry|car)/
</code> will be more efficent that <code>
/(car([st]|ry)?)/
</code> as of 5.9.2, and in some circumstance massively more efficient.
</p>
<p>
I admit i wrote the optimization so im tooting my own horn here a bit. :-) But it is worth realizing that alternations in later perls can be signifigantly faster than other hypothetically equivelent patterns.
</p>
<div class="pmsig"><div class="pmsig-108447">
---<br />
demerphq<br />
<br />
</div></div>
383015
383015