我使用Perl DBI访问某些MySQL数据库字段。我有一个包含文本和一些Perl变量的字段。 Perl变量不被解释为变量。有没有办法以某种方式标记MySQL字段中的变量,以便它们将在Perl中解释?
谢谢!
答案 0 :(得分:1)
不,没有办法#34;标记" MySQL列(字段)的内容,以强制Perl评估包含变量名的文本字符串的内容。
这个问题与MySQL没有任何关系。
Perl常见问题解答中对此进行了介绍。 How can I expand variables in text strings?
作为示例,一个字符串中包含两个Perl标量变量。
$string = 'Say hello to $foo and $bar';
(该字符串文字是单引号,因此$ foo和$ bar不会被解释为变量,这些只是文字字符串中的字符。)
但我想将$foo
和$bar
扩展为其变量的值。让我们说我已经定义了这些变量:
my $foo = 'Fred';
my $bar = 'Barney';
我可以将文本字符串中的$foo
和$bar
替换为变量值的一种方法是使用替换运算符和双/e
标志。
第一个/e
评估替换方$1
并将其转换为$foo
。
第二个/e
以$foo
开头,并将其替换为变量$foo
的值,因此$foo
将替换为'Fred'
$string =~ s/(\$\w+)/$1/eeg; # 'Say hello to Fred and Barney'