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

Ilya Chesnokov chesnokov.ilya на gmail.com
Ср Май 28 04:37:02 PDT 2014


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