Phoenix.pm: $& discussion
mdearman at inficad.com
Thu Aug 24 05:07:17 CDT 2000
Enjoyed the get together and meeting you'all.
Doug Miles wrote:
> I looked into the $& problem in O'reilly's "Mastering Regular
For Perl ver. 5.003, don't have a clue if this still holds. The author
has maintained an excellent support site, but I don't remember seeing
anything addressing this issue.
> and found that the inefficiency is caused by perl making a
> copy of the string that is being matched against. This is also caused
> by using '()'s in a regex (which I am doing), so avoiding the use of $&
Just to round the culprits out - this also happens when $' and $` are used.
As I read it, this group and parens also disable some optimizations done for
substitutions. But for parens,this only affects the regex actually in the parens.
and the /i modifier causes the copy, in some cases.
Also, you'll get this performance hit if these are in any module/lib your using.
There's a list of the offending libs on pg. 278, Mastering Reg Expressions.
Of course some popular modules are on the list.
> won't help. Also, with the addition of \s* to my pattern (which I have
I'm probably missing something, but why can't you just do 'length($1)',
> done), I don't think I can avoid using $&. Great discussion!
> - Doug
> Don't anthropomorphize computers. They hate that.
More information about the Phoenix-pm