Perl:如何用变量替换变量

时间:2013-05-22 06:14:58

标签: regex string perl perl-module

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

my $test = $dbh->prepare( "select test from testing") 

在脚本中,我指定了 $ name =“Joe”。 现在,我需要将 $ name 变量替换为脚本中指定的变量名称(即Joe)。我试过打印$ test。打印出“Dear $ name,Hello” 我怎么能这样做。

2 个答案:

答案 0 :(得分:8)

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

use strict;
use warnings;

use String::Interpolate 'interpolate';

my $name = "Joe";

my $text = 'Dear $name, Hello';
print interpolate($text);

<强>输出

Dear Joe, Hello

答案 1 :(得分:3)

你可以尝试这样的事情:

use strict;

my $name = "Joe";
my $test = 'Dear $name, Hello';

$test =~ s/\$name/$name/ ;

print $test;

输出:

Dear Joe, Hello