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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Rinat H. Sadretdinow                 2:5020/400     27 Mar 2003  17:31:24
 To : All
 Subject : Чайницкий вопрос
 -------------------------------------------------------------------------------- 
 
 Hello world!
 
 Hе нашёл я конференцию типа ru.perl.chainik и поэтому решил спросить тут.
 Решил я ни с того, ни с сего перечитать ``Programming Perl'' и наткнулся там
 на следующее:
 
 === cut ===
 package PsychoHash;
 
 use overload '%{}' => \&as_hash;
 
 sub as_hash {
     my ($x) = shift;
     return { @$x };
 }
 
 sub new {
     my $class = shift;
     return bless [ @_ ] => $class;
 }
 
 $critter = new PsychoHash( height => 72, weight => 365, type => "camel" );
 
 print $critter->{weight};   # prints 365
 === cut ===
 
 Второй день голову ломаю: почему $critter->{weight} возвращает 365? Это же
 не hash, это массив. И если вставить print в процедуру as_hash то этот print
 покажет, что $x есть reference на массив. Откуда же там hash берётся? Такой
 вот чайницкий вопрос.
 
 --
 Пока!
 
 --- ifmail v.2.15dev5
  * Origin: SYS3175 (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Чайницкий вопрос   Rinat H. Sadretdinow   27 Mar 2003 17:31:24 
 Чайницкий вопрос   Renat Araslanow   28 Mar 2003 00:59:38 
Архивное /ru.perl/6577ac5049ae.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional