in reply to XML::Twig parse_inplace - it actually works

I don't like your @ARGV trick. I know what it does but it unnecessarily distracts from the main topic. Also it's probably better to undef($twig) than to assign zero to it. It does the same, but I'd rather undef the variable that's supposed to contain an object than set it to a number.

And of course, it would not be me if I did not promote XML::Rules whenever there's a chance:

use strict; use warnings; use XML::Rules; open my $XML, '>', 'temp.xml'; print $XML <<XML; <root> <elt attr="wibble" /> <other>tag</other> <elt attr="wobble">content</elt> </root> XML close $XML; my $parser = XML::Rules->new ( style => 'filter', rules => { _default => 'raw', elt => sub { $_[1]->{attr} = 'updated'; return $_[0] => $_[1] }, } ); #$parser->filterfile('temp.xml', 'temp-new.xml'); open my $OUT, '>', 'temp-new.xml' or die; $parser->filterfile('temp.xml', $OUT); close $OUT; open my $IN, '<', 'temp-new.xml' or die; print "::$_" while <$IN>;
Choose whichever you like better.
The line I commented out would only work in the not yet released version.