Worked ! Thanks a lot

))
"Paul Lalli" <> wrote in
news:2Q4nd.12483$wY2.3433@trndny05:
> "JMI" <waggis_at_hotmail.com> wrote in message
> news:Xns95A5B40F63810waggishotmailcom@192.37.1.74. ..
>> Let's imagine your program accepts two command line arguments to
> perform
>> replaces in a string:
>> usage: myprogram -s "foo" -r "bar"
>> where s is the search regex and r the replace regex.
>>
>> Everything works fine, even grouping with parenthesis, etc. As
> described in
>> detail in the cookbook.
>>
>> But:
>> When I want to use a captured value in the replacement regex, it does
>> simply not work. Using all possible syntaxes ( as \$1, or \\$1...)
> only
>> leads to either an exmpty value in the replaced string, or a
> plain-text
>> "$1" text when too much is escaped.
>
> Giving simply $1 makes the shell pass the shell's own $1 variable to
> your script.
> Giving \$1 passes the literal string '$1' to your script.
>
> What you need to do is tell Perl to evaluate that literal string as
> Perl:
>
> perl -le'$_ = q/foo/; s/($ARGV[0])/$ARGV[1]/ee; print;' foo \$1
>
> This is a trivial example, of course, but it does illustrate that perl
> is correctly replacing 'foo' with the captured match (which also happens
> to be 'foo').
>
> For more info, look up the /e modifier in
> perldoc perlretut
> or
> perldoc perlre
>
> Paul Lalli
>