Функция Eval
Функция Eval
eval выражение;
eval блок;
Выражение сканируется и выполняется как обычная Perl программа. Это делается в контексте текущей программы, поэтому можно использовать уже определенные переменные и подпрограммы. Возвращается результат последнего оператора в блоке или значение оператора return. Если обнаружится синтаксическая ошибка или выполнится оператор die, то возвращается неопределенное значение, а переменная $@ содержит сообщение об ошибке. Если ошибки не было, то $@ содержит нулевую строку. При отсутствии аргумента берется значение переменной $_:
$op = "print(1..10); print\"\n\""; eval $op; if ($@ eq ""){print "Ошибок не было"} else {print "Переменная \$op содержит ошибки"}