my @sheads= $t->root->children( 'shead'); foreach my $shead (@sheads) { my $aheadtext= $shead->wrap_in( 'aheadtext'); my $more_text= $aheadtext->next_sibling; while( $more_text->tag ne 'shead') { $more_text->move( last_child => $aheadtext); $more_text= $aheadtext->next_sibling; } }