My Perl variable to variable substitutions do not work

Viewed 67

I have a substitution to make in a Perl script, which I do not seem to get working. I have a string in a text file which has the form:

T+30H

The string T+30H has to be written in many files and has to change from file to file. It is two digits and sometimes three digits. First I define the variable:

my $wrffcr=qr{T+\d+H};

After reading the file containing the string, I have the following substitution command (starting with the file capture)

@scrptlines=<$NCLSCRPT>;
foreach $scrptlines (@scrptlines) {
$scrptlines =~ s/$wrffcr/T+$fcrange2[$jj]H/g;
}

$fcrange2[$jj] is defined and I confirm its value by printing its value just before the above 4 lines of code.

print "$fcrange2[$jj]\n";

When I run my script, nothing changes for this particular substitution. I suspect it is to do with the way I define the string to be substituted. I will appreciate any assistance. Zilore Mumba

1 Answers

Watch out for the first + in my $wrffcr=qr{T+\d+H};. It'll make it match 1 or more Ts, not T followed by a +. You probably want

my $wrffcr=qr{T\+\d+H};
Related