Item1 => {
SubItem1 => {
SubSubItem1 => 1,
SubSubItem2 => 1,
SubSubItem3 => 1,
},
SubItem2 => {
SubSubItem1 => 1,
SubSubItem2 => 1,
SubSubItem3 => 1,
},
},
Item2 => {
...
####
sub hashref_to_treeview {
my $hashref = shift;
my $treeview = shift; # Win32::GUI::Treeview object
my $parent_node = shift || 0;
return unless ref($hashref) eq 'HASH';
for my $node ( sort keys %$hashref ) {
my $new_node = $treeview->InsertItem(-text => $node, -parent => $parent_node);
hashref_to_treeview($$hashref{$node}, $treeview, $new_node);
}
}
####
my $id = 1;
my $data = {};
my $table1_results = $dbh->selectall_arrayref('SELECT field1 FROM table1 WHERE id = ?', {Slice => {}}, $id);
foreach my $field1 (@$table1_results) {
$data->{$id}->{$table1_results->{field_of_interest}} = undef;
my $table2_results = $dbh->selectall_arrayref('SELECT field2 FROM table2 WHERE field1 = ?', {Slice => {}}, $field1->{field1});
foreach my $field2 (@$table2_results) {
$data->{$id}->{$table1_results->{field_of_interest}}->{$table2_results->{field_of_interest}} = undef;
...
}
}
####
parent child1 child2 child3
-------- -------- -------- --------
value1 value2 value3 value4
value1 value2a value3 (null)
...
####
sub recursion_test {
my $array = shift;
my @results;
while(@$array > 1){
push @results, recursion_test($array);
}
return [$$array[0], undef];
}