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

Харпалёв Иван ivan.kharpalev на gmail.com
Ср Май 28 05:13:15 PDT 2014


Как всё круто оказывается!!!
Спасибо!
Perl рулит)


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/671c2a26/attachment.html>


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