[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