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

发布于 2024-08-26 19:58:03 字数 348 浏览 7 评论 0原文

是否可以将一些 Perl 代码保存在数据库中,使用 select 语句检索它,然后执行该 Perl 代码?

我尝试过使用 eval,但这似乎不起作用。

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

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

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

Is it possible to save some Perl code in a database, retrieve it using a select statement, and execute that Perl code?

I have tried using eval, but that doesn't seem to work.

Here is what I'm trying right now and it doesn't seem to work:

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

The output is $con->Disconnect();exit;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

素罗衫 2024-09-02 19:58:03

您只需要:

eval $temp;

您的版本不起作用的原因是由于 eval 的块形式对其进行评估,就好像您编写了一个简单的字符串一样:

eval{"perl code here"}

这就像编写这行 Perl:

"Perl code here"

它不是代码;它是代码。这是一个字符串。

块形式评估块内的内容。如果字符串位于块内,则它只是一个字符串,而不是脚本。

字符串形式评估字符串内部的内容。

You just need:

eval $temp;

The reason your version didn't work was due to the block form of eval evaluating it as if you had written a simple string:

eval{"perl code here"}

It is like writing this line of Perl:

"Perl code here"

It isn't code; it's a string.

The block form evaluates what is inside the block. If a string is inside the block, it's just a string, not a script.

The string form evaluates what is inside the string.

淡看悲欢离合 2024-09-02 19:58:03

我想通了;如果我删除大括号,那么它就可以工作。

I figured it out; if I remove the curly brackets then it works.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文