|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 19 Mar 2003 15:43:43 To : Alan Long Subject : Re: про рекурсию -------------------------------------------------------------------------------- Здравствуй, Alan Long. AL> Если данные которые находятся в объекте по-каким-либо причинам не AL> корректные, то возможно зацикливание рекурсивной процедуры. Для этого мы AL> вводим некий хеш для отлова обработки одинаковых id: AL> sub tree_list { AL> ... AL> my %loop; AL> sub _tree_list { AL> ... AL> my $id = shift; AL> ... AL> unless( defined $loop{$id} ) { AL> $loop{$id} = 1; AL> .... AL> } AL> } AL> ... AL> } AL> Hо в этом случае perl ругается на то, что %loop не может быть расшарен в AL> tree_list и _tree_list, сейчас я сделал так: AL> our %loop = (); # вместо my %loop; AL> Hасколько это правильное решение ? AL> Или можно было-бы как-то более проще/правильнее сделать это ? Альтернативный вариант - не лениться передавать в _tree_list ссылку на этот хэш. -- Artem Chuprina RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757 --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/114775fb5d7a1.html, оценка из 5, голосов 22
|