[Moscow.pm] deep recursion on subroutine utf8::swashnen

devrow на gmail.com devrow на gmail.com
Сб Окт 25 08:01:26 PDT 2014


On 16.10.2014 13:34, Victor Efimov wrote:
> Всё равно нужен кусок код, чтобы это нам хотя бы воспроизвести, а
> потом уже рассуждать..

кусок кода для примера я приводил. + к этому писал, что
парсер отсутствие точки с запятой ловит без проблем, когда,
цитирую себя же: "если натравить perl -c ./path/to/package.pm
на этот модуль, то ошибка синтаксиса находится без проблем."

был бы благодарен хотя бы за наводки на то, что может
происходить или не должно, но происходит, т.к. понимаю, что
нужно целиком проект запостить, но такой возможности у меня
нет.

повторюсь: интересует именно в какой очередности происходит
подключение/интерпретация модулей и как это связано с use
utf8, что сначала: стулья или деньги )

> 
> 16 октября 2014 г., 13:18 пользователь devrow на gmail.com
> <devrow на gmail.com> написал:
>> дело не в куске кода, это не так важно.
>> вопрос был о том (извиняюсь, если я не точно выразился),
>> что происходит, когда вылетает ошибка рекурсии до того как
>> парсер "пройдет" по коду и найдет ошибку в синтаксисе.
>>
>> логично было бы предположить, что сначала должен отработать
>> парсер и выявить отсутствие точки с запятой, а уже потом,
>> при выполнении, будет ошибка рекурсии.
>>
>> если натравить perl -c ./path/to/package.pm на этот модуль,
>> то ошибка синтаксиса находится без проблем. почему она не
>> находится в процессе подгрузки модулей, а вместо этого
>> получается что-то там про рекурсию...
>>
>> спасибо.
>>
>> [root на localhost /]# perl -v
>> This is perl, v5.10.1 (*) built for i386-linux-thread-multi
>>
>> On 15.10.2014 23:57, Sergey Aleynikov wrote:
>>> Добрый день,
>>>
>>> Перл 5.20 эту ошибку на этом куске кода не генерирует. Чтобы можно
>>> было что-то подсказать - нужна версия перла и тест-кейс, который можно
>>> взять и запустить.
>>>
>>> Best regards,
>>> Sergey Aleynikov
>>>
>>>
>>> 15 октября 2014 г., 23:35 пользователь devrow на gmail.com
>>> <devrow на gmail.com> написал:
>>>> всем привет.
>>>> вопрос чисто академический, просто интересно.
>>>>
>>>> $self->{key} = '';
>>>> return undef if $self->{key2}->getValue('section', 'value_name') == 0
>>>> my $var = undef;
>>>>
>>>> этот код генерит сабжевую ошибку. скорее всего, я чего-то не знаю,
>>>> т.к. в этом куске, по контексту, ошибка синтаксическая (нет ; во
>>>> второй строке), но никак не конвертации чего-то во что-то и тем более
>>>> я никак не предполагал о "грубокой рекурсии".
>>>>
>>>> этот кусок находится в модуле (pm), который подружается через use.
>>>> модуль начинается стандартно:
>>>>
>>>> package name;
>>>> use utf8;
>>>> use strict;
>>>> use warnings;
>>>> ...
>>>>
>>>> глюк нашел вопрошая вселенную. голоса ближайшего к нам
>>>> космоса ответили. после применения метода научного тыка.
>>>>
>>>> спс.
>>>> --
>>>> Moscow.pm mailing list
>>>> moscow-pm на pm.org | http://moscow.pm.org
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org


Подробная информация о списке рассылки Moscow-pm