On 9/7/07, John W. Krahn <[EMAIL PROTECTED]> wrote:
> Aruna Goke wrote:
>
> > print $&, if $f=~m/\S+$/;
>
> perldoc perlre
> [ snip ]
>      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.
>
>
> Why is there a comma after the variable?  Did you forget to include another
> variable?
>
>

I'm actually a little confused about this. I never really thought
about it, but the doc seems to indicate that $1 is a s bad as $& ("the
same mechanism"). But then it implies that capturing parentheses only
affect particular patterns ("pay a price for each pattern...").

So does capturing parentheses anywhere affect the every pattern, like
$&, or just patterns that capture?

Best,

-- jay
--------------------------------------------------
This email and attachment(s): [  ] blogable; [ x ] ask first; [  ]
private and confidential

daggerquill [at] gmail [dot] com
http://www.tuaw.com  http://www.downloadsquad.com  http://www.engatiki.org

values of β will give rise to dom!

Reply via email to