Hi,
        I have a need to store replacement text for a regex substitution
in a variable.  In other words, I have code in a perl script like so::

$foo =~ s/(.*)bar(.*)/$replacement/g;

The $replacement string needs to contain a "reference" to $1.  In other
words, the string $replacement will contain the string "$1".  I need to
have the $1 string interpreted so that it will be replaced with the text
of the first '(.*)' expression.  I have not yet found a way to get this
to happen.  The "$1" string always seems to be interpreted as a plain
string.

        Can someone tell me how to write the substitution correctly?  I
have included an example below.

        Thanks for your help and your time.


                        Bill Brown
                        [EMAIL PROTECTED]

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

> $ perl -d
>  
> Loading DB routines from perl5db.pl version 1.0402
> Emacs support available.
>  
> Enter h or `h h' for help.
>  
> my $foo="yada bar yada";
> my $replacement='$1';
> $foo =~ s/(.*)bar(.*)/$replacement/g;
> print $foo;
> my $foo="yada bar yada";
> $foo =~ s/(.*)bar(.*)/$1/g;
> print $foo
> main::(-:1):    my $foo="yada bar yada";
>   DB<1> n
> main::(-:2):    my $replacement='$1';
>   DB<1> n
> main::(-:3):    $foo =~ s/(.*)bar(.*)/$replacement/g;
>   DB<1> n
> main::(-:4):    print $foo;
>   DB<2> n
> $1                [ BAD OUTPUT ]
> main::(-:5):  my $foo="yada bar yada";
>   DB<2> n
> main::(-:6):    $foo =~ s/(.*)bar(.*)/$1/g;
>   DB<2> n
> main::(-:7):    print $foo
>   DB<2> n
> yada             [ GOOD OUTPUT]
> Debugged program terminated.  Use q to quit or R to restart,
>   use O inhibit_exit to avoid stopping after program termination,
>   h q, h R or h O to get additional info.
>   DB<2>

-- 
William L. Brown
Email: [EMAIL PROTECTED]



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to