[devel] Re: Perl модули
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Сб Апр 2 23:57:56 MSD 2005
On Sat, Apr 02, 2005 at 10:48:59PM +0400, Alexey Tourbin wrote:
> On Sat, Mar 26, 2005 at 06:47:41PM +0300, Вячеслав Диконов wrote:
> > # WARNING: failed to extract version
> > at /home/slava/.tmp/perl-SOAP-Lite-buildroot/usr/lib/perl5/vendor_perl/Apache/SOAP.pm line 18:
> > # $VERSION = sprintf("%d.%s", map {s/_//g; $_} q$Name:
> > release-0_60-public $ =~ /-(\d+)_([\d_]+)/);
> > # 'map' trapped by operation mask at (eval 3) line 1, <$fh> line 18.
>
> Это из-за Safe->reval в perl.prov. То есть map был отнесен
> к "ненадежным" опкодам. То есть в `Porivdes: perl(Apache/SOAP.pm)'
> и др. версии не будет. На это пока можно забить.
А ведь это я разломал. Когда-то работало:
http://lists.altlinux.ru/pipermail/devel/2001-May/002823.html
То есть я решил отключить "entereval grepstart grepwhile mapstart
mapwhile" до тех пор, пока что-нибудь не сломается, т.к. у меня локально
на большом числе модулей ничего не сломалось.
Кстати, по этой ссылке видна ещё одна (уже исправленная) ошибка:
my $version = $safe->reval("$line; \$VERSION;");
Что если $line заканчивается комментарием? Правильно, $VERSION тоже
окажется в комментарии. Правильно так:
my $version = $safe->reval("$line\n; \$VERSION;");
Вернее, это наверное работало, т.к. $line заканчивался на \n.
А когда я сделал chomp, то работать перестало.
Ещё по нескольким граблям прошелся:
if ((m/^=(head[12]|pod|over|item|for|begin)/) .. (m/^=(cut)/)) {
next;
}
В некоторых файлах вся документация находится в самом низу и *не
заканчивается* на =cut (что допустимо). Тогда действие этого условия
перекидывается на следующий файл до ближайшего =cut. Сейчас так:
next if /^=\w/ .. (/^=cut/ or eof);
Прямо на это месте ещё одну граблю заметил: eof без скобок и eof() со
скобками ведет себя совершенно по-разному (см. perldoc -f eof).
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?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/20050402/79bc2605/attachment-0001.bin>
Подробная информация о списке рассылки Devel