in reply to tree in hash
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my $tree ; my %tree_levels; while ( <DATA> ) { chomp; m/^(\s+)?/; my $length; if ( defined $1 ) {$length = length($1);} else { $length = 0 } my $hr = { label => $_, children => [] }; $tree_levels{$length} = $hr; unless ( defined $tree ) { $tree = $hr; } else { push @{$tree_levels{$length - 2}->{children}}, $hr; } } print Dumper $tree; __DATA__ Building House Window Glas Silicium Door Roof Wood Hut Pizza Garage Door
-enlil
|
|---|