【发布时间】:2012-10-04 10:13:03
【问题描述】:
我在使用 eval 函数时遇到问题。
确实,我在 SQL 数据库中有一些函数名,我的目标是在 perl 中执行这些函数(在 SQL 中检索之后)。
考虑到 $RssSource->{$k}{Proceed} 包含“&test”作为从 SQL 检索的字符串,这就是我正在做的事情:
my $str2 = "ABCD";
eval "$RssSource->{$k}{Proceed}";warn if $@;
sub test
{
my $arg = shift;
print "fct TEST -> ", $row, "\n";
}
这工作正常并显示:
fct TEST ->
但是我希望能够将 $str2 作为参数传递给 $RssSource->{$k}{Proceed} 但我不知道如何,我尝试的每个语法都返回错误:
eval "$RssSource->{$k}{Proceed}$str2"
eval "$RssSource->{$k}{Proceed}($str2)"
eval "$RssSource->{$k}{Proceed}"$str2
eval "$RssSource->{$k}{Proceed}"($str2)
有人可以告诉我如何正确地将参数传递给评估函数吗?
非常感谢您的帮助
问候。
弗洛伦特
【问题讨论】:
-
您是说
$arg而不是$row,还是相反? -
是的,你是对的,我在发布之前重写了我的代码以严格关注我的问题,并且没有在测试函数中正确更改变量名,对不起