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

Ответить