Regex 如何在正则表达式中使用Perl变量?

Regex 如何在正则表达式中使用Perl变量?,regex,perl,variables,Regex,Perl,Variables,我正在尝试搜索并替换为变量。在本例中,是我从以前的匹配中提取的变量。这是我的密码: $fileContentToAlter =~ s/$2/$1/g; 现在我意识到,在这种状态下,它被错误地读取,因为$在regexp中有自己的含义。我在网上做了一些搜索,读到双引号可以解决这个问题,因为它会插入,但这对我来说不起作用。我不会撒谎,这是一个家庭作业,所以我不希望得到一个直截了当的答案。只需朝正确的方向轻推一下。避免使用“$1”和“$2”,因为它们是正则表达式元字符 use strict; use

我正在尝试搜索并替换为变量。在本例中,是我从以前的匹配中提取的变量。这是我的密码:

$fileContentToAlter =~ s/$2/$1/g;

现在我意识到,在这种状态下,它被错误地读取,因为
$
在regexp中有自己的含义。我在网上做了一些搜索,读到双引号可以解决这个问题,因为它会插入,但这对我来说不起作用。我不会撒谎,这是一个家庭作业,所以我不希望得到一个直截了当的答案。只需朝正确的方向轻推一下。

避免使用“$1”和“$2”,因为它们是正则表达式元字符

use strict;
use warnings;

my $val1 = "abc";
my $val2 = "def";
while (<>)
{
    s/$val1/$val2/g;
    print;
}
使用严格;
使用警告;
我的$val1=“abc”;
我的$val2=“def”;
而()
{
s/$val1/$val2/g;
印刷品;
}

谢谢您的帮助。我开始怀疑我是否应该创建一个变量来分配我的$1和$2结果。捕获变量是无关的,完全可以避免:
my($this,$that)=$match_me=~/(Capture_this)(Capture_this)/很好,我都没想到。我不得不对perl进行思考,因为它与我习惯处理的东西大不相同。但我真的开始喜欢它了。