Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Perl:如何用变量的值替换变量_Regex_String_Perl_Perl Module - Fatal编程技术网

Regex Perl:如何用变量的值替换变量

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自己的插值

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

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
,然后它不应抛出警告。