my $raw_graph = [ 'root', undef, [ "Amiri", "Test tubes are clear.", [ "Darla", "Jump!" ], [ "Jeff", "Daytime." ], ], [ "Ryan", "Oops.", ], ]; #### explorenode( $raw_graph, [], 1, 1 ); #### sub explorenode { my ( $node, $rows, $left, $id ) = @_; my $i = $id; my $l = $left; for ( 2 .. $#$node ) { $id++; $left++; explorenode( $node->[$_], $rows, $left, $id ); $id++; $left++; } $left++; push( @$rows, [ $i, $l, $left, $node->[0], $node->[1] ] ); } #### $VAR1 = [ 3, 3, 4, 'Darla', 'Jump!' ]; $VAR2 = [ 5, 5, 6, 'Jeff', 'Daytime.' ]; $VAR3 = [ 2, 2, 7, 'Amiri', 'Test tubes are clear.' ]; $VAR4 = [ 4, 4, 5, 'Ryan', 'Oops.' ]; $VAR5 = [ 1, 1, 6, 'root', undef ]; #### $VAR1 = [ 3, 3, 4, 'Darla', 'Jump!' ]; $VAR2 = [ 4, 5, 6, 'Jeff', 'Daytime.' ]; $VAR3 = [ 2, 2, 7, 'Amiri', 'Test tubes are clear.' ]; $VAR4 = [ 5, 8, 9, 'Ryan', 'Oops.' ]; $VAR5 = [ 1, 1, 10, 'root', undef ];