...
use Handlers::Library qw/:handlers/;
...
open my $filehandle, '>', 'output.xml' or die ">output.xml:$!";
my $p = XML::Twig->new(
twig_handlers => { foo => \&foo_handler },
);
####
package Handlers::Library;
my $twig_fh;
BEGIN { $twig_fh = *STDOUT; }
sub twig_output {
my $name = shift;
open $twig_fh, '>', $name or die ">$name: $!";
}
sub foo_handler { ... $twig->flush($twig_fh) }
sub bar_handler { ... $twig->flush($twig_fh) }
####
use Handlers::Library qw/:handlers/;
twig_output('output.xml');
my $p = XML::Twig->new(...);