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

devrow на gmail.com devrow на gmail.com
Сб Окт 25 09:02:23 PDT 2014


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

On 25.10.2014 19:27, Victor Efimov wrote:
> 25 октября 2014 г., 19:01 пользователь devrow на gmail.com
> <devrow на gmail.com> написал:
>> On 16.10.2014 13:34, Victor Efimov wrote:
>>> Всё равно нужен кусок код, чтобы это нам хотя бы воспроизвести, а
>>> потом уже рассуждать..
>>
>> кусок кода для примера я приводил. + к этому писал, что
> 
> пример кода из первого поста
> ===
> $self->{key} = '';
> return undef if $self->{key2}->getValue('section', 'value_name') == 0
> my $var = undef;
> ===
> падает с ошибкой
> 
> syntax error at 33.pl line 4, near "my "
> Execution of 33.pl aborted due to compilation errors.
> 
> так что не годится.
> 
>> парсер отсутствие точки с запятой ловит без проблем, когда,
>> цитирую себя же: "если натравить perl -c ./path/to/package.pm
>> на этот модуль, то ошибка синтаксиса находится без проблем."
>>
>> был бы благодарен хотя бы за наводки на то, что может
>> происходить или не должно, но происходит, т.к. понимаю, что
>> нужно целиком проект запостить, но такой возможности у меня
>> нет.
> 
> целиком не нужно. нужно взять проект и упрощать его постепенно до
> незвисимого, простого примера кода, который любой сможет запустить.
> это, кстати, самая сложная часть, возможно проблему найдёте сами =)
> 
> иначе, просто всё это
> 
> "deep recursion on subroutine utf8::swashnen"
> "этот код генерит сабжевую ошибку."
> "модуль начинается стандартно:"
> 
> выглядит как FUD. если ошибку так легко воспроизвести - Вам не должно
> составить труда прислать пример кода.
> 
> 
> 
>>
>> повторюсь: интересует именно в какой очередности происходит
>> подключение/интерпретация модулей и как это связано с 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 mailing list
>> moscow-pm на pm.org | http://moscow.pm.org


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