[Moscow.pm] overload в наследнике

Андрей Фёдоров secrethost на gmail.com
Ср Май 28 04:38:49 PDT 2014


Передать строку

use overload '""' => 'to_string';


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
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20140528/af642907/attachment.html>


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