Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > eval |
Автор: gcc 29.7.2009, 04:16 | ||||
для чего нужен eval в веб программировании, можно ли его не использовать? в одном проекте на Catayst часто видел везде стоит eval, ну и модули сделаные с die например
если написать без eval, то выдаст ошибку я пишу так
eval это просто как стиль программирование, или его нужно использовать? |
Автор: chorny 29.7.2009, 04:27 |
В данном случае eval - это перехват исключения. Во многих языках используется try {} catch {}. В Perl такая конструкция возможна с помощью Error.pm или TryCatch.pm. |
Автор: gcc 29.7.2009, 04:42 | ||
то есть можно не использовать eval? try {} v catch {} знаю, но тут не системное программирование, то есть я не пишу фремфорк, в веб программу, все модули и все методы должны быть на месте, не может быть что их не будет почему нельзя нормально пользователю выдать, например
|
Автор: Ramirez 29.7.2009, 08:52 | ||||||
ну собственно основная идея - это выполнить кусок кода (например динамически сформированного) на этапе исполнения. т.е. интерпретация произойдет только тогда, когда исполнение дойдет до этой строки. А применение может быть различным. использовать или не использовать зависит от ситуации. Есть реальная вероятность что в вызываемом модуле/функции произойдет ошибка? Эту ошибку можно/нужно игнорировать? 1. возможность перехватывать любые ошибки в процессе исполнения
2. на этапе исполнения подключать модули по мере необходимости. а не все сразу в момент интерпретации.
3. позволяет динамически сформировать кусок кода и выполнить его:
|
Автор: gcc 30.7.2009, 00:27 |
ок, понтяно |
Автор: Bulat 30.7.2009, 12:28 |
больше всего мне eval нравится как обработчик исключительных ситуаций(ошибок). Кстати в языке Java блок try {} catch {} - просто необходимая часть кода. Очень удобно, когда бизнес-логика проекта включает в себя ряд манипуляций на разном уровне, в коде, на уровне БД и т.д. |