use Compress::Zlib; if($out eq 'gz'){ binmode STDOUT; print("Content-type: application/x-gzip\n\n"); my $gz = gzopen(\*STDOUT, "wb") or die "Cannot open stdout: $gzerrno\n" ; foreach my $line (@lines){ $gz->gzwrite($line) or die "error writing: $gzerrno\n" ; } $gz->gzclose; }