#!/usr/bin/perl -w use strict; use Compress::Zlib; my ($tempFilename2, $tempFilename1, $gz, $buffer, $gzerrno); $tempFilename1 = "yeast.aa.Z"; $tempFilename2 = "yeast.aa"; open (GZIPFILE, "$tempFilename1") || warn "Can't open zip input file: $tempFilename1: $!"; binmode GZIPFILE; open (DATAFILE, ">>$tempFilename2") || warn "Can't open uncompressed data file: $tempFilename2: $!"; binmode DATAFILE; my $x = inflateInit() or die "Cannot create a inflation stream\n" ; my $input = '' ; my ($output, $status) ; while (read(GZIPFILE, $input, 4096)) { ($output, $status) = $x->inflate(\$input) ; print DATAFILE $output if $status == Z_OK or $status == Z_STREAM_END ; last if $status != Z_OK ; } die "inflation failed\n" unless $status == Z_STREAM_END ;