Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 странность   Konstantin Stupnik   17 Mar 2004 14:05:23 
 Re: странность   Artem Chuprina   17 Mar 2004 16:27:48 
 Re: странность   Konstantin Stupnik   17 Mar 2004 16:54:37 
 Re: странность   Artem Chuprina   17 Mar 2004 22:56:11 
 Re: странность   Konstantin Stupnik   18 Mar 2004 12:35:14 
Архивное /ru.perl/2560635efcc09.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional