traverse($in, 0, 0, sub {print ' ' x $_->{dept},'-',$_->{comm},"\n";});
... later in the code...
traverse($in, 0, 0, sub {$sth->execute($dept, $comm)});
####
sub _print {
print ' ' x $_->{dept},'-',$_->{comm},"\n";
}
traverse($in, 0, 0, \&_print);
####
sub print_tree {
push(@_, 0, 0, sub {print ' ' x $_->{dept},'-',$_->{comm},"\n";});
&traverse;
}
print_tree($in);