sub to_string { my ($node, $level) = @_; my $xml = ''; my $indent = ' ' x $level; if ($node->{type} eq 't') { $xml .= $node->{name} } elsif ($node->{type} eq 'e') { $xml .= "$indent<$node->{name}>\n"; for my $child (@{ $node->{content} || [] }) { $xml = to_string($child, $level + 1); } $xml .= "$indent{name}>\n"; } } my $xml; $xml .= to_string($_) for @$easytree;