in reply to Recursing through hash of arrays

since references aren't your strongest point, try explicitly assigning variables to them. it really helps to get a feel of what's going on...
sub print_tree { my $key = shift; my $tab = shift; print "$tab$key\n"; my $array_ref = $found{$key}; if ($array_ref) { $tab .= "\t"; foreach my $element (@{$array_ref}) { print_tree($element,$tab); } } } __DATA__ output: start a c f e b d e g