in reply to Re: Regular expressions Containing Octal values?
in thread Regular expressions Containing Octal values?

No. $1 is the value of the first subexpression from the previous successful match, which will be interpolated during the compilation of this regular expression. Definitely not what you want.

I give some solutions in my other node in this thread.

-- Randal L. Schwartz, Perl hacker


update: And of course, that only makes sense if we're talking about the LHS, but it's the RHS in this example. Sorry.
  • Comment on •Re: Re: Regular expressions Containing Octal values?

Replies are listed 'Best First'.
Re: •Re: Re: Regular expressions Containing Octal values?
by jmcnamara (Monsignor) on May 17, 2002 at 16:03 UTC

    I don't get it. Isn't the previous successful match at the LHS of the s///? Isn't that interpolated into this regex? Like this:
    #!/usr/bin/perl -wl use strict; $_ = "3 L-homoserine"; /(\w-\w)/; print $1; s/(\d*\s*)L-homoserine/${1}2-Amino-4-hydroxybutyric acid/; print; $_ = "L-homoserine"; s/(\d*\s*)L-homoserine/${1}2-Amino-4-hydroxybutyric acid/; print; __END__ Prints: L-h 3 2-Amino-4-hydroxybutyric acid 2-Amino-4-hydroxybutyric acid

    --
    John.

      Ahh, I totally missed that we were talking about the RHS (a qq string) instead of the LHS (a qr string). In that case, $1 (and in this case, ${1}) are the only things that should be used. The \1 construct works only as an error-correction DWIM that as shown can be sometimes ambiguous.

      -- Randal L. Schwartz, Perl hacker