sub untree { my $lines = shift; my %obj; my @stack; foreach (@$lines) { /([|`][-])/; my $key_level = $-[0] / 3; if ( $key_level < @stack ) { pop @stack until $key_level == @stack; } my $current = \%obj; $current = $current->{$_} foreach @stack; if (/(\w+)\s=\s(\w*)\s*$/) { $current->{$1} = $2 eq 'undef' ? undef : $2; } elsif (/(\w+)\s\(no\selements\)/) { $current->{$1} = []; } elsif (/(\w+)\s=\s*$/) { $current->{$1} = ''; } elsif (/(\w+)\s*$/) { push @stack, $1; $current->{$1} = {}; } } return \%obj; }
In reply to Re^2: TreeDumper Parser / Inverse?
by jimpudar
in thread TreeDumper Parser / Inverse?
by jimpudar
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |