Skip Menu |

This queue is for tickets about the Curses-Toolkit CPAN distribution.

Report information
The Basics
Id: 86990
Status: new
Priority: 0/
Queue: Curses-Toolkit

People
Owner: Nobody in particular
Requestors: dolmen [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: 0.208
Fixed in: (no value)



Subject: Usage of $`, $&, $'
The following modules use $` $& or $' : - Curses/Toolkit/Object/MarkupString.pm - Curses/UI/Common.pm Unfortunately not everyone works with perl 5.18 that has $` cost fixed. From perlre: 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. -- Olivier Mengué - http://perlresume.org/DOLMEN
Le 2013-07-17 11:15:24, DOLMEN a écrit : Show quoted text
> The following modules use $` $& or $' : > - Curses/Toolkit/Object/MarkupString.pm > - Curses/UI/Common.pm
Curses::UI::Common is not in this distribution. I've reported RT#86991 https://rt.cpan.org/Ticket/Display.html?id=86991 -- Olivier Mengué - http://perlresume.org/DOLMEN