|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 17 Mar 2004 16:27:48 To : Konstantin Stupnik Subject : Re: странность -------------------------------------------------------------------------------- Konstantin Stupnik @ Wed, 17 Mar 2004 10:05:23 +0000 (UTC): KS> Если запустить так, то получаю: KS> Operation `=': no method found, argument in overloaded package Test at a.pl KS> line 10. KS> Attempt to free unreferenced scalar. KS> Если убрать комментарии у скобочек, то всё ок. KS> Или если убрать комментарий у operator=, то тоже ок. KS> Why? KS> my @arr = qw(1 2 3 4); KS> #{ KS> my $o=bless {},'Test'; KS> unshift @arr,$o; KS> #} KS> print "Before\n"; KS> $arr[0] += shift(@arr); Меня очень смущает вот эта строчка. Я бы сказал, что это переводится как 1 += $object; KS> print "After\n"; KS> package Test; KS> use overload KS> # "=" => sub{print "=\n";return shift;}, KS> "+=" => sub{print "+=\n";return shift;}; KS> sub DESTROY{ KS> print "TestDestroy\n"; KS> } KS> 1; -- Artem Chuprina RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757 --- ifmail v.2.15dev5.3 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/2560635efcc09.html, оценка из 5, голосов 10
|