2

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

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

在脚本中,我分配了 $name="Joe"。现在,我需要将$name变量替换为脚本中分配的变量名(即 Joe)。我尝试打印 $test。它打印“Dear $name, Hello” 我该怎么做。

4

2 回答 2

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
于 2013-05-22T06:26:12.087 回答
3

你可以尝试这样的事情:

use strict;

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

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

print $test;

输出:

Dear Joe, Hello  
于 2013-05-22T06:31:22.743 回答