# Represents
# AA Sections are cool
# AB They are extremely cool
# ABAA That's right, really cool
# ABAB Again, really cool
my $sections = [
{content => 'Sections are cool' },
{content => 'They are extremely cool',
subsecs => [
{ content => "That's right, really cool" },
{ content => "Again, really cool" },
]
}
];
####
recurse_section( $sections );
sub recurse_section {
my ($sections, @vaportrail) = @_;
push @vaportrail, 'AA';
foreach my $section (@$sections) {
print @vaportrail, " ", $section->{'content'}, "\n";
recurse_section($section->{subsecs}, @vaportrail)
if defined $section->{subsecs};
$vaportrail[ $#vaportrail ]++
}
}
##
##
# Add a supersection above "They are extremely cool"
my $moving_section = $sections->[1];
$sections->[1] = { content => 'And moving sections is easy too!', subsecs => [ $moving_section ] };
recurse_section( $sections );