in reply to Re: Problems with a regex?
in thread Problems with a regex?

To /^\Q$stack\E$/ (emphasis on the \E).

And to the OP, note that your first RE can be simplified:

#if ($line =~ m/set\sservice\s(\".+\").?/) { if ($line =~ m/set\sservice\s(".+")/) {

No need to escape quotes; nor to match beyond what you are interested in. (I often see REs with a useless .* at the end.)

Replies are listed 'Best First'.
Re^3: Problems with a regex?
by BrowserUk (Patriarch) on Aug 14, 2012 at 16:05 UTC
    To /^\Q$stack\E$/ (emphasis on the \E).

    Why? If the \E comes at the end of the regex it is completely redundant. A pointless, useless addition.


    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".
    In the absence of evidence, opinion is indistinguishable from prejudice.

    The start of some sanity?

      I would think so too, reading the docs. But with /^\Q$stack\E$/, I get:

      Service name: "MY NEW SERVICE (TMP)" Popping stack: . Adding to stack: "MY NEW SERVICE (TMP)" Service name: "MY NEW SERVICE (TMP)" It's on stack, keep compiling

      And with /^\Q$stack$/, I get:

      Service name: "MY NEW SERVICE (TMP)" Popping stack: . Adding to stack: "MY NEW SERVICE (TMP)" Service name: "MY NEW SERVICE (TMP)" Popping stack: "MY NEW SERVICE (TMP)". Adding to stack: "MY NEW SERVIC +E (TMP)"

      More simply:

      $ perl -e "$x=$_='()';print/^\Q$x\E$/?YES:NO" YES $ perl -e "$x=$_='()';print/^\Q$x$/?YES:NO" NO

        Mea culpa! You're right. Escaping the $ makes the difference.


        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".
        In the absence of evidence, opinion is indistinguishable from prejudice.

        The start of some sanity?