{ # a # / \ # b e # / \ \ # c d f my $tree = [ 'a', [ 'b', [ 'c', undef, undef, ], [ 'd', undef, undef, ], ], [ 'e', undef, [ 'f', undef, undef, ], ], ]; my $iter = make_iter(\&visit_preorder, $tree); while (my ($name) = $iter->()) { print($name); } print("\n"); }