Skip Menu |

This queue is for tickets about the CGI-Alert CPAN distribution.

Report information
The Basics
Id: 83283
Status: resolved
Priority: 0/
Queue: CGI-Alert

People
Owner: cpanrt [...] edsantiago.com
Requestors: NHORNE [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: v2.0.0
Fixed in: (no value)



Subject: Usage of $` and $'
The use of $` and $' will affect the performance of the entire script (not just this module), please use something else instead of $real_name = "<b>$`$'</b> "; From http://perldoc.perl.org/perlre.html#Capture-buffers: WARNING: Once Perl sees that you need one of $& , $` , or $' anywhere in the program, it has to provide them for every pattern match. This may substantially slow your program. Perl uses the same mechanism to produce $1 , $2 , etc, so you also pay a price for each pattern that contains capturing parentheses. (To avoid this cost while retaining the grouping behaviour, use the extended regular expression (?: ... ) instead.) But if you never use $& , $` or $' , then patterns without capturing parentheses will not be penalized. So avoid $& , $' , and $` if you can, but if you can't (and some algorithms really appreciate them), once you've used them once, use them at will, because you've already paid the price. As of 5.005, $& is not so costly as the other two. As a workaround for this problem, Perl 5.10.0 introduces ${^PREMATCH} , ${^MATCH} and ${^POSTMATCH} , which are equivalent to $` , $& and $' , except that they are only guaranteed to be defined after a successful match that was executed with the /p (preserve) modifier. The use of these variables incurs no global performance penalty, unlike their punctuation char equivalents, however at the trade-off that you have to tell perl when you want to use them.
CGI-Alert 2.07 uploaded to CPAN. Thanks for noticing this.