Perl:如何用变量替换变量

Rud*_*dra 2 regex string perl perl-module

假设,如果一个表有一个名为test的列,并且我在内部测试中写了一行"Dear $ name,Hello",其中$ name是一个变量.我需要选择我正在做的这一行

my $test = $dbh->prepare( "select test from testing") 
Run Code Online (Sandbox Code Playgroud)

在脚本中我已经分配了$ name ="Joe".现在,我需要将$ name变量替换为脚本中指定的变量名称(即Joe).我试过打印$ test.它打印"亲爱的名字,你好"我怎么能这样做.

Bor*_*din 8

我建议你使用String::Interpolate模块,它将Perl自己的插值系统应用于你通过参数传递的值.它可能需要从CPAN安装,因为它不是核心模块.

use strict;
use warnings;

use String::Interpolate 'interpolate';

my $name = "Joe";

my $text = 'Dear $name, Hello';
print interpolate($text);
Run Code Online (Sandbox Code Playgroud)

产量

Dear Joe, Hello
Run Code Online (Sandbox Code Playgroud)