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

Pin*_*kle 2 regex variables perl

我正在尝试搜索并替换变量.在这种情况下,我从之前的比赛中提取的变量.这是我的代码:

$fileContentToAlter =~ s/$2/$1/g;
Run Code Online (Sandbox Code Playgroud)

现在我意识到在那个状态下,它被正确读取,因为$它在regexp中有其自己的含义.我在网上做了一些搜索,并读到双引号可以解决问题,因为它会插入,但这看起来不适合我.我不会撒谎,这是一个家庭作业,所以我不期待一个平坦的答案.只是朝着正确的方向轻推.

Jon*_*ler 5

避免'$ 1'和'$ 2',因为它们是正则表达式元字符.

use strict;
use warnings;

my $val1 = "abc";
my $val2 = "def";
while (<>)
{
    s/$val1/$val2/g;
    print;
}
Run Code Online (Sandbox Code Playgroud)