假设,如果一个表有一个名为test的列,并且我在内部测试中写了一行“Dear $ name,Hello”,其中$ name是一个变量。我需要选择我正在做的这一行
my $test = $dbh->prepare( "select test from testing")
在脚本中,我指定了 $ name =“Joe”。 现在,我需要将 $ name 变量替换为脚本中指定的变量名称(即Joe)。我试过打印$ test。打印出“Dear $ name,Hello” 我怎么能这样做。
答案 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