my $tb = Tree::Builder->new(); find(sub { my $name = $File::Find::name; $name =~ s/^$dir//; $tb->add($name); }, $dir); my $tree = { $tb->getTree }; _transformTree( $tree ); ... sub _transformTree { my $ref = shift; ## I need sort of meta-data-enabled tree: foreach my $item (keys %$ref){ if( keys %{ $ref->{ $item } } ){ my $clone = $ref->{ $item }; $ref->{ $item } = {}; $ref->{ $item }->{name} = $item; $ref->{ $item }->{value} = $clone; # $clone = undef; # should I uncomment this? or does perl +take care of it? _transformTree( $ref->{ $item }->{value} ); }else{ $ref->{ $item }->{name} = $item; $ref->{ $item }->{value} = undef; } } }
In reply to Re: Building a nested data structure from File::Find
by isync
in thread Building a nested data structure from File::Find
by isync
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |