my @mystack; my $i = 1; tree_children('0'); sub tree_children { my $r = shift; # push(@mystack,$obj{$r}) unless $r eq '0'; if ($children{$r}) { for (@{ $children{$r} }) { push(@mystack,[$_,$obj{$_}]); $i++; tree_children($_); $i--; } } }