|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 18 Apr 2002 18:55:12 To : Igor Gerdler Subject : Re: Прошу разъяснить кое-чт о... -------------------------------------------------------------------------------- Igor Gerdler wrote: > Читая в perlfaq4 ответ на вопрос "How do I handle linked lists?" увидел > пример: > > > $node = { > VALUE => 42, > LINK => undef, > }; > > You could walk the list this way: > > print "List: "; > for ($node = $head; $node; $node = $node->{LINK}) { > print $node->{VALUE}, " "; > } > print "\n"; > > и мало что из него понял. Может быть кто-нибудь мне поможет вникнуть в смысл > цикла for? Достаточно тривиально. $head есть ссалка на первый элемент списка. Каждый элемент его есть анонимный хэш, содержащий элементы VALUE (значение) и LINK (ссылка на следующий элемент). Последний элемент содержит undef в поле LINK. В итоге, цикл for изначально присваивает $node значению $head (т.е. первому элементу), вертится до тех пор пока $node истинно (т.е. пока мы не дошли до конца цепочки), и по завершению каждой итерации присваивает $node значение следующего элемента. > P.S. Читая perldoc perltrap, раздел Numerical Traps увидел следующий пример: > print 7.373504 - 0, "\n"; > printf "%20.18f\n", 7.373504 - 0; > > # Perl4 prints: > 7.375039999999996141 > 7.37503999999999614 > > # Perl5 prints: > 7.373504 > 7.37503999999999614 > > Я сам не проверял, но думаю, что-то здесь не так (посмотрите на цифры в > числах). Может это только у меня в perltrap так написано? Опечатка. Троечку потеряли как-то. Андрей --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/5284dc1394f8.html, оценка из 5, голосов 10
|