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

Харпалёв Иван ivan.kharpalev на gmail.com
Ср Май 28 08:14:06 PDT 2014


Да, спасибо!
Правильно заметили "sub  \&subroutine_name"   --- бредовая опечатка.

--> Какая разница use overload '""' => ‘to_string’ или use overload '""' =>
\&to_string ?

use overload '""' => \&subroutine_name --  будет вызыать функция из текущей
области видимости по ссылке.
use overload '""' => 'subroutine_name' -- будет какждый раз вызывать
функцию по имени, что и решает троблему топика (как и вызов функцию по
имени на $self).




28 мая 2014 г., 16:18 пользователь Роман Юсуфханов
<r.yusufkhanov на gmail.com>написал:

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


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