FAQ 6.18 Why does using $&, $`, or $' slow my program down?

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

This message is one of several periodic postings to comp.lang.perl.misc
intended to make it easier for perl programmers to find answers to
common questions. The core of this message represents an excerpt
from the documentation provided with Perl.


6.18: Why does using $&, $`, or $' slow my program down?

    (contributed by Anno Siegel)

    Once Perl sees that you need one of these variables anywhere in the
    program, it provides them on each and every pattern match. That means
    that on every pattern match the entire string will be copied, part of it
    to $`, part to $&, and part to $'. Thus the penalty is most severe with
    long strings and patterns that match often. Avoid $&, $', and $` if you
    can, but if you can't, once you've used them at all, use them at will
    because you've already paid the price. Remember that some algorithms
    really appreciate them. As of the 5.005 release, the $& variable is no
    longer "expensive" the way the other two are.


Documents such as this have been called "Answers to Frequently
Asked Questions" or FAQ for short.  They represent an important
part of the Usenet tradition.  They serve to reduce the volume of
redundant traffic on a news group by providing quality answers to
questions that keep coming up.

If you are some how irritated by seeing these postings you are free
to ignore them or add the sender to your killfile.  If you find
errors or other problems with these postings please send corrections
or comments to the posting email address or to the maintainers as
directed in the perlfaq manual page.

Note that the FAQ text posted by this server may have been modified
from that distributed in the stable Perl release.  It may have been
edited to reflect the additions, changes and corrections provided
by respondents, reviewers, and critics to previous postings of
these FAQ. Complete text of these FAQ are available on request.

The perlfaq manual page contains the following copyright notice.


    Copyright (c) 1997-2002 Tom Christiansen and Nathan
    Torkington, and other contributors as noted. All rights

This posting is provided in the hope that it will be useful but
does not represent a commitment or contract of any kind on the part
of the contributers, authors or their agents.

Site Timeline