my %tree = ( "Office of President" => { Recruiting => undef, 'Pipe line' => undef, Software => { MIS => undef, 'System Operations' => undef, }, } ); print dump_tree(\%tree); sub dump_tree { my($tree, $indent) = ( $_[0], $_[1] || 0 ); my $ret = ''; for(sort keys %$tree) { $ret .= " " x $indent."$_\n"; $ret .= dump_tree($tree->{$_}, $indent + 2) if ref $tree->{$_} and ref $tree->{$_} eq 'HASH'; } return $ret; } __output__ Office of President Pipe line Recruiting Software MIS System Operations