Какая разница use overload '""' => ‘to_string’ или use overload '""' => 
\&to_string ?
В любом случае была ошибка в примере 
use overload '""' => sub \&to_string; # Illegal declaration of anonymous 
subroutine
Автор?
28 мая 2014 г., в 15:42, Ilya Chesnokov <[email protected]> написал(а):

> 28 мая 2014 г., 15:38 пользователь Андрей Фёдоров
> <[email protected]> написал:
>> Передать строку
>> 
>> use overload '""' => 'to_string';
> 
> Точно... И вообще, perldoc overload ;)
> 
>> 
>> 28 мая 2014 г., 15:37 пользователь Ilya Chesnokov <[email protected]>
>> написал:
>> 
>>> 28 мая 2014 г., 15:32 пользователь Харпалёв Иван
>>> <[email protected]> написал:
>>>> 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
>>>> [email protected] | http://moscow.pm.org
>>>> 
>>> 
>>> 
>>> 
>>> --
>>> Best regards,
>>> Ilya Chesnokov
>>> --
>>> Moscow.pm mailing list
>>> [email protected] | http://moscow.pm.org
>> 
>> 
>> 
>> --
>> Moscow.pm mailing list
>> [email protected] | http://moscow.pm.org
>> 
> 
> 
> 
> -- 
> Best regards,
> Ilya Chesnokov
> -- 
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org

-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить