sub paths { my $paths_ref = shift; while ( my ($k,$v) = each %$paths_ref) { my $l=$root->lookup($k); if ($l->is_container) { if ($l->has_children) { foreach my $c($l->children) { my $c_ref = {}; $paths_ref->{$c} = $c_ref; paths($paths_ref->{$c}); } } else { $paths_ref->{$k} = undef; } } else { $paths_ref->{$k} = undef; } } } #### $VAR1 = { '/' => '/', '/S1_A1/tmp/test' => {}, '/S1_A2/tmp' => {}, '/S1_A1' => {}, '/S1_A1/tmp/test1' => {}, '/test' => undef, '/S1_A1/tmp/test2' => {}, '/S1_A3' => {}, '/S1_A1/tmp' => {}, '/S1_A2/test' => {}, '/S2_A2' => undef, '/S1_A3/tmp' => {}, '/S1_A2' => {}, '/S1_A3/tmp/test' => undef, '/S2_A1' => undef };