[devel] Поиск зависимостей
Alexey Tourbin
at на altlinux.ru
Ср Сен 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).
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 189 байтов
Описание: отсутствует
Url : http://lists.altlinux.org/pipermail/devel/attachments/20070919/94cad354/attachment.bin
Подробная информация о списке рассылки Devel