perl - 我的 Perl 变量到变量替换不起作用

标签 perl

我要在 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/

相关文章:

perl - 在 Perl 中需要峰值信号检测方面的帮助

perl - @ISA vs 使用 base vs 使用 parent

html - 根据文本内容设置HTML表格单元格背景色

perl - 如何升级从 CPAN 安装的 perl 模块?

arrays - 在单个命令行中执行 grep 和 sed

perl - Perl 运行时是否有实际的派生类?

perl - 从 Perl 中的字符串执行整个 Perl 程序

perl - Moose:通过创建对象检查属性

c - "fasttop"是什么意思?

perl - 使用没有 "Subroutine redefined"的 PDL::常量