Какая разница 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
