in reply to Parsing a Tree to a Table.
use strict; use warnings; my %h1=('qwqw' => {'qw' => 'qww','df' => 'dfff','C1' => {'A2' => 'a2', +'B2' => 'b2','C2' => 'c2END'}},); my %h2=( 'AAA' => 'aaa', 'BBB' => 'bbb', 'CCC' => {'A1' => 'a1','B1' => 'b1','C1' => {'A2' => 'a2','B2' => 'b2' +,'C2' => 'c2END'}}, 'DDD' => 'ddd', 'EEE' => \%h1, 'FFF' => 'sdsfsds', ); &ddump(\%h2); sub ddump { my $ref = shift; my $deep = shift||0; foreach my $k (sort keys %{$ref}) { if (ref( ${$ref}{$k})) {print "\t" x $deep."$k =>\n"; &dd +ump (${$ref}{$k}, ($deep+1))} else {print "\t" x ($deep)."$k => ${$ref}{$k}\n";} } }
Note that just as in C, Perl doesn't define when the variable is incremented or decremented. You just know it will be done sometime before or after the value is returned. This also means that modifying a variable twice in the same statement will lead to undefined behavior.Is this the case?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Parsing a Tree to a Table.
by Athanasius (Archbishop) on Dec 05, 2013 at 11:17 UTC | |
by Discipulus (Canon) on Dec 05, 2013 at 11:22 UTC |