[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