我的Perl程序可以执行存储在数据库中的代码吗?

时间:2010-03-26 06:07:32

标签: mysql perl eval

是否可以在数据库中保存一些Perl代码,然后使用select语句检索它,然后执行该Perl代码?我尝试过使用eval,但这似乎不起作用。

以下是我现在正在尝试的内容,似乎无法正常工作:

my $temp = $qryResults[0];
print $temp."\n";
eval{"$temp"};

输出为$con->Disconnect();exit;

2 个答案:

答案 0 :(得分:6)

你只需要:

eval $temp;

你的版本不起作用的原因是由于eval的块形式评估它,好像你写了一个简单的字符串:

eval{"perl code here"}

就像写这行perl:

"perl code here"

它不是代码,它是一个字符串。 块形式摧毁了块内部的内容。如果一个字符串在块内,它只是一个字符串,而不是一个脚本。 字符串形式会破坏字符串中的内容。

答案 1 :(得分:1)

我明白了;如果我删除大括号,那么它可以工作。