|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6577ac5049ae.html, оценка из 5, голосов 10
|