in reply to Re^2: perl regex
in thread perl regex

so /(need)/ would match the word need.

... and return the matched word 'need'; but yes.

However, what is the purpose of capturing the matched word when you already know what it is?

Ie. If your intent is to do:

my( $foundWord ) = $string =~ /(need)/;

That is equivalent to doing:

my $foundWord = $string =~ /need/ ? 'need ' : undef;

The point being that capturing is expensive and the need to capture a known constant string is strongly indicative of flawed logic.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority". The enemy of (IT) success is complexity.
In the absence of evidence, opinion is indistinguishable from prejudice.

Replies are listed 'Best First'.
Re^4: perl regex
by BrowserUk (Patriarch) on Nov 13, 2016 at 23:07 UTC

    Just to make the point about capturing being expensive.

    The following two samples do the same thing, and when the string haystack fails to contain the needle, the capturing version is 15% slower; but the real difference is when the haystack does contain the needle, when it takes nearly 5 times as long!:

    [0]{} Perl> $s='the quick brown fox jumps of the lazy dog'; cmpthese - +1,{a=>q[my($f)=$s=~m[(need)];], b=>q[my $f= $s=~ m[need] ? 'need' : u +ndef; ] };; Rate a b a 2902896/s -- -12% b 3289193/s 13% -- [0]{} Perl> $s='the quick brown fox jumps need of the lazy dog'; cmpth +ese -1,{a=>q[my($f)=$s=~m[(need)];], b=>q[my $f= $s=~ m[need] ? 'need +' : undef; ] };; Rate a b a 517876/s -- -83% b 3000131/s 479% --

    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority". The enemy of (IT) success is complexity.
    In the absence of evidence, opinion is indistinguishable from prejudice.