Sure, see also ${^RE_TRIE_MAXBUF} in perlvar
${^RE_TRIE_MAXBUF} Controls how certain regex optimisations are applied an +d how much memory they utilize. This value by default is 6553 +6 which corresponds to a 512kB temporary cache. Set this to a h +igher value to trade memory for speed when matching large alternations. Set it to a lower value if you want the optimisations to be as conservative of memory as possib +le but still occur, and set it to a negative value to prevent +the optimisation and conserve the most memory. Under norma +l situations this variable should be of no interest to yo +u.
Disabling the buffer is also a mean to show the effect of a missing optimization.
It's also much faster to join all strings to be inspected on the LHS and to run the regex just once.
But if only word-boundaries are needed, I suppose hash-lookups can still be faster, of course depending on "density" and "distance" of the searched patterns.
Cheers Rolf
( addicted to the Perl Programming Language)
In reply to Re^3: Efficient matching with accompanying data (${^RE_TRIE_MAXBUF})
by LanX
in thread Efficient matching with accompanying data
by Endless
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |