use PerlIO::gzip; open my $IN, "<:gzip", "file.gz" or die $!; $parser->parse($IN); ...