package My::Appender;
use XML::Filter::Merger;
@ISA = qw( XML::Filter::Merger );
use strict;
sub end_element {
my $self = shift;
if ( $self->in_master_document && ! $self->element_depth ) {
XML::SAX::ParserFactory->parser(
Handler => $self
)->parse_string( <<'END_DOC' );
END_DOC
}
$self->SUPER::end_element( @_ );
}
package main;
use XML::SAX::Machines qw( Pipeline );
Pipeline( My::Appender => \*STDOUT )->parse_string( <<'END_DOC' );
END_DOC