我要在 Perl 脚本中进行替换,但我似乎无法正常工作。我在文本文件中有一个字符串,其格式为:
T+30H
字符串 T+30H 必须写在许多文件中,并且必须在文件之间更改。它是两位数,有时是三位数。首先我定义变量:
my $wrffcr=qr{T+\d+H};
读取包含字符串的文件后,我有以下替换命令(从文件捕获开始)
@scrptlines=<$NCLSCRPT>;
foreach $scrptlines (@scrptlines) {
$scrptlines =~ s/$wrffcr/T+$fcrange2[$jj]H/g;
}
$fcrange2[$jj] 已定义,我通过在上述 4 行代码之前打印它的值来确认它的值。
print "$fcrange2[$jj]\n";
当我运行我的脚本时,这个特定的替换没有任何变化。我怀疑这与我定义要替换的字符串的方式有关。 我将不胜感激任何帮助。 齐洛尔蒙巴
最佳答案
注意 my $wrffcr=qr{T+\d+H};
中的第一个 +
。它将使它匹配 1 个或多个 T
,而不是 T
后跟 +
。你可能想要
my $wrffcr=qr{T\+\d+H};
关于perl - 我的 Perl 变量到变量替换不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68626228/