As I said:
Because "aaa" is a string of literal characters but "^aaa" isn't. "^" is a meta symbol for anchoring. The literal character is "\^", but that's not what you want.
If you need better explanation how trie works, please follow the links I provided.
It certainly could be implemented for surrounding anchors too, just by using the workaround I showed.
But it's normally a bargain between code complexity and trade-off.
Perl's source is already suffering from covering too many edge cases which are only of interest for a small minority of users. And they shout the loudest when backwards compatibility is broken.
At the same time the code is getting increasingly complicated to maintain.
For instance: you could volunteer to implement a solution which creates multiple trie alterations surrounded by different anchors. (Not trivial to test)
Then someone with a commit bit has to decide if it's worth the resulting trouble to test and maintain that code in eternity.
In the end it's strategically easier to provide a CPAN module covering this edge case.
Usage would show if it's of wider interest or just pleasing you and a handful of others.
Cheers Rolf
(addicted to the Perl Programming Language :)
see Wikisyntax for the Monastery
In reply to Re^3: Alternations and anchors (trie optimization)
by LanX
in thread Alternations and anchors
by Chuma
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |