Regex Perl:如何用变量的值替换变量
假设,如果一个表有一个名为test的列,并且在test内部,我写了一行作为“”亲爱的$name,Hello“,其中$name是一个变量。我需要选择我正在执行的此行Regex Perl:如何用变量的值替换变量,regex,string,perl,perl-module,Regex,String,Perl,Perl Module,假设,如果一个表有一个名为test的列,并且在test内部,我写了一行作为“”亲爱的$name,Hello“,其中$name是一个变量。我需要选择我正在执行的此行 my $test = $dbh->prepare( "select test from testing") 在脚本中,我指定了$name=“Joe”。 现在,我需要将$name变量替换为脚本中指定的变量名(即Joe)。我试着打印$test。打印“亲爱的$name,您好” 我该怎么做。我建议您使用该模块,它将Perl自己的插值
my $test = $dbh->prepare( "select test from testing")
在脚本中,我指定了$name=“Joe”。
现在,我需要将$name变量替换为脚本中指定的变量名(即Joe)。我试着打印$test。打印“亲爱的$name,您好”
我该怎么做。我建议您使用该模块,它将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
博罗丁,谢谢你的快速回复。但我担心的是,我需要替换数据库中行中的变量。@Vishu:Borodin发布的内容使您能够做到这一点。Nikhil,谢谢您的回复,它不起作用,正在给出warning@Vishu:你能提一下警告吗?在问题中,你已经输入了$name,“n”是小写,但现在看起来您使用的是不同的变量$Name,这就是为什么您会收到警告。请提及您用于解决此问题的确切代码。在regexp编译中使用未初始化值$Name我从警告中得到此警告,我可以说您直接使用$Name变量而没有初始化它,因此在使用它之前,请将其声明为my
$Name
,然后它不应抛出警告。