http://www.perlmonks.org?node_id=361421

#!/usr/bin/perl use strict; use warnings; use XML::Twig; my $compressed_filename = shift || die; my $reader = new IO::Handle::Zlib; $reader->open($compressed_filename, "rb") or die "could not open $compressed_filename: $!"; my $twig = XML::Twig->new( twig_handlers => { h1 => sub { $_->set_tag( 'h2') }, }, ); $twig->parse($reader); $twig->print; package IO::Handle::Zlib; use base qw/ IO::Zlib IO::Handle /;