[devel] Поиск зависимостей
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Ср Сен 19 13:41:57 MSD 2007
On Wed, Sep 19, 2007 at 01:29:37PM +0400, Epiphanov Sergei wrote:
> В сообщении от Wednesday 19 September 2007 12:53:19 Slava Dubrovskiy
> написал(а):
> > и т.д. Там где Ok все понятно, а там где "inside eval SKIP" что это
> > значит?
>
> Означает, что запрос на загрузку модуля расположен внутри eval-блока. То есть
> сама команда
>
> eval {use SomeModule};
>
> не сломает запуск программы, если модуль SomeModule не стоит, но как при этом
> поведёт себя программа, есть ли там проверка $@ или нет - сам парсер ничего
> не знает и не сможет определить. Поэтому такие конструкции пропускаются.
Этот случай как раз сломает. Все "use" выполняются в безусловном
порядке так скоро, как парсер увидел use (perldoc -f use). Вот
eval "use SomeModule" # спратяно в строку
eval {require SomeModule}
это другое дело.
Фактически есть два разных eval'а -- т.н. entertry, т.е. eval BLOCK,
в котором код уже распарсен, и внутренний парсер в этом случае не
запускается. Просто перехватываются "die".
И есть eval EXPR, где на EXPR всякий раз запускается парсер (perldoc -f eval).
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20070919/94cad354/attachment-0002.bin>
Подробная информация о списке рассылки Devel