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

csk*_*wrd -1 mysql perl eval

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

这是我现在正在尝试的东西,它似乎不起作用:

my $temp = $qryResults[0];
print $temp."\n";
eval{"$temp"};
Run Code Online (Sandbox Code Playgroud)

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

cod*_*eim 6

您只需要:

eval $temp;
Run Code Online (Sandbox Code Playgroud)

您的版本无法正常工作的原因是由于eval的块形式对其进行评估,就好像您编写了一个简单的字符串:

eval{"perl code here"}
Run Code Online (Sandbox Code Playgroud)

就像编写这行perl:

"perl code here"
Run Code Online (Sandbox Code Playgroud)

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

  • 是.尽管它们都被称为"eval",但是"eval {BLOCK}"和"eval"STRING"`不能互换. (3认同)
  • 许多泪流满面的编程课程始于"嘿,如果我只是使用eval ...".我的建议:不要. (2认同)