正则表达式中未转义的左大括号已弃用,在正则表达式中传递

who*_*rth 2 perl

我正在努力迁移一些遗留代码,Perl 适合以下几行:

$message =~ s/_WIP_list{file}_/$WIP_list{$file}/g;
$message =~ s/_STD_list{file}_/$STD_list{$file}/g;
Run Code Online (Sandbox Code Playgroud)

我应该如何编写它们以避免弃用错误?

too*_*lic 5

用反斜杠转义左大括号:

$message =~ s/_WIP_list\{file}_/$WIP_list{$file}/g;
$message =~ s/_STD_list\{file}_/$STD_list{$file}/g;
#                      ^
Run Code Online (Sandbox Code Playgroud)

为了帮助调试此类问题,您可以添加以下内容以获得警告消息的更详细说明:

use diagnostics;
Run Code Online (Sandbox Code Playgroud)