wannabeperlie has asked for the wisdom of the Perl Monks concerning the following question:
Hi,
I have a question regarding delaying interpolation of a variable when it is used in a regular expression. The below code snippet demonstrates the problem
%cat test.pl
When I execute the above code the output I get is :#!/usr/bin/perl use strict; my $line = "System has tool zigzag version 3.6"; my $match = 'System\s+has\s+tool\s+([0-9a-zA-Z_-]+)\s+version\s+(.*)'; my $replace = 'System has tool $1 version ABC'; $line =~ s/$match/$replace/g; print "Line after replacement: $line \n";
%./test.pl
Line after replacement: System has tool $1 version ABC
The output I need is :
Line after replacement: System has tool zigzag version ABC
How do I get $1 to be interpolated in the replacement pattern ? I tried other variants like : e,ee etc but none yeild the result I need.
Back to
Seekers of Perl Wisdom