in reply to XML::Twig and STDOUT??
XML::Twig uses select internally to redirect print output which is mucking up your use of print - that's getting redirected too. You could work around it by using STDOUT explicitly in yout diagnostic print:
use strict; use warnings; use XML::Twig; my $outStr = ''; open my $outFile, '>', \$outStr; my $twig = XML::Twig->new ( twig_roots => {'wibble' => sub {put_new_jump (@_, $outFile, 'wibbl +e')}}, twig_print_outside_roots => $outFile, keep_encoding => 1, ); $twig->parse (<<XML); <root> <wibble name='My Name is Mr. Wibble'>The wibble element</wibble> </root> XML close $outFile; print "All done now. Result is:\n\n"; print $outStr; sub put_new_jump { my ($tree, $elem, $fh, $path) = @_; my $name = $elem->att ('name'); print STDOUT "Name: $name\n"; $elem->print ($fh); }
Prints:
Name: My Name is Mr. Wibble All done now. Result is: <root> <wibble name="My Name is Mr. Wibble">The wibble element</wibble> </root>
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: XML::Twig and STDOUT??
by BenHopkins (Sexton) on Aug 30, 2009 at 03:50 UTC |