Может ли моя Perl-программа выполнять код, хранящийся в базе данных? - PullRequest
0 голосов
/ 26 марта 2010

Можно ли сохранить некоторый код Perl в базе данных, затем извлечь его с помощью оператора select и затем выполнить этот код Perl? Я пытался использовать eval , но, похоже, это не сработало.

Вот то, что я сейчас пытаюсь, и, похоже, это не работает:

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

вывод $con->Disconnect();exit;

Ответы [ 2 ]

6 голосов
/ 26 марта 2010

Вам просто нужно:

eval $temp;

Причина, по которой ваша версия не работала, заключается в блочной форме eval, которая оценивает ее так, как если бы вы написали простую строку:

eval{"perl code here"}

похоже на написание этой строки perl:

"perl code here"

Это не код, это строка. Форма блока обнаруживает то, что находится внутри блока. Если строка находится внутри блока, это просто строка, а не сценарий. Строковая форма разрушает то, что находится внутри строки.

1 голос
/ 26 марта 2010

Я понял это; если я уберу фигурные скобки, то это сработает.

...