[Moscow.pm] overload в наследнике
Роман Юсуфханов
r.yusufkhanov на gmail.com
Ср Май 28 05:18:32 PDT 2014
Какая разница use overload '""' => ‘to_string’ или use overload '""' => \&to_string ?
В любом случае была ошибка в примере
use overload '""' => sub \&to_string; # Illegal declaration of anonymous subroutine
Автор?
28 мая 2014 г., в 15:42, Ilya Chesnokov <chesnokov.ilya на gmail.com> написал(а):
> 28 мая 2014 г., 15:38 пользователь Андрей Фёдоров
> <secrethost на gmail.com> написал:
>> Передать строку
>>
>> use overload '""' => 'to_string';
>
> Точно... И вообще, perldoc overload ;)
>
>>
>> 28 мая 2014 г., 15:37 пользователь Ilya Chesnokov <chesnokov.ilya на gmail.com>
>> написал:
>>
>>> 28 мая 2014 г., 15:32 пользователь Харпалёв Иван
>>> <ivan.kharpalev на gmail.com> написал:
>>>> package Parent;
>>>> use overload '""' => sub \&to_string;
>>>> sub to_string {...}
>>>>
>>>> package Heir;
>>>> use base 'Parent';
>>>> sub to_string;
>>>>
>>>> package main;
>>>> print Heir->new(); #будет вызвана Parent::to_string, а не
>>>> Heir::to_string
>>>>
>>>>
>>>> Что же делать?? (чтобы в родителе определять overload, а подменяя методы
>>>> в
>>>> наследнике изменять поведение перегруженных операторов).
>>>
>>> Ну ты как бы явно даешь ссылку на функцию to_string() родительского
>>> пакета.
>>> Что, если сделать так:
>>>
>>> use overload "" => sub { $_[0]->to_string() };
>>>
>>>>
>>>>
>>>>
>>>> С уважением
>>>> Иван Харпалев
>>>>
>>>>
>>>> --
>>>> Moscow.pm mailing list
>>>> moscow-pm на pm.org | http://moscow.pm.org
>>>>
>>>
>>>
>>>
>>> --
>>> Best regards,
>>> Ilya Chesnokov
>>> --
>>> Moscow.pm mailing list
>>> moscow-pm на pm.org | http://moscow.pm.org
>>
>>
>>
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>
>
>
> --
> Best regards,
> Ilya Chesnokov
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20140528/a50bcc48/attachment.html>
Подробная информация о списке рассылки Moscow-pm