in reply to Regex Interpolation

What you have currently should already interpolate, if I'm understanding what you mean by interpolate. You should get rid of some of those backslashes, though, because they're not needed. And change the "\s" on the right-hand side of the substitution into a " ".
$retVal =~ s/showpos"\svalue="1"/showpos" value="$main::pageVar1"/ +;
This works for me.

Replies are listed 'Best First'.
RE: Re: Regex Interpolation
by spectre (Scribe) on Jun 24, 2000 at 00:41 UTC
    I re-wrote that line, trying to make that swap at a different place in the code, here is what I found:
    print "$retVal\n"; print "Success!\n" if $retVal=~s/showpos=1/showpos=$main::pageVar1/; print "$retVal\n"; print "$main::pageVar\n";
    returns this:
    catCount=0&prodCount=36&show=prod&showpos=1&searchtxt=chip ... (The rest is irrelevant)
    Success!
    catCount=0&prodCount=36&show=prod&showpos=&searchtxt=chip
    1

    What I want to see here is the section "showpos=" to contain the value of $main::pageVar next to a number one.

    Regards,
    spectre

    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.0.1 (GNU/Linux)
    Comment: For info see http://www.gnupg.org

    iD8DBQE5U4KjQY9UwXAsuBQRAtnrAJ4tREiYW93esFhsZjLPQ21UJLPTQQCePU7A
    6c5CzwVZr80Cs5vo3MJH5Ow=
    =7nk0
    -----END PGP SIGNATURE-----
      The problem comes from the 1 at the end of $main::pageVar. Perl thinks that the variable is $main::pageVar1. To distinguish the variable from the literal 1 change the variable reference to ${main::pageVar} so that the regex looks like print "Success!\n" if $retVal=~s/showpos=1/showpos=${main::pageVar}1/;