假设,如果一个表有一个名为 test 的列,并且在 test 内部,我写了一行“亲爱的 $name,Hello”,其中 $name 是一个变量。我需要选择我正在做的这一行
my $test = $dbh->prepare( "select test from testing")
在脚本中,我分配了 $name="Joe"。现在,我需要将$name变量替换为脚本中分配的变量名(即 Joe)。我尝试打印 $test。它打印“Dear $name, Hello” 我该怎么做。
假设,如果一个表有一个名为 test 的列,并且在 test 内部,我写了一行“亲爱的 $name,Hello”,其中 $name 是一个变量。我需要选择我正在做的这一行
my $test = $dbh->prepare( "select test from testing")
在脚本中,我分配了 $name="Joe"。现在,我需要将$name变量替换为脚本中分配的变量名(即 Joe)。我尝试打印 $test。它打印“Dear $name, Hello” 我该怎么做。
我建议您使用该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
你可以尝试这样的事情:
use strict;
my $name = "Joe";
my $test = 'Dear $name, Hello';
$test =~ s/\$name/$name/ ;
print $test;
输出:
Dear Joe, Hello