#! /usr/bin/perl -w use strict; use Compress::Zlib; my $file = shift || 'testdata.gz'; my $file2 = shift || 'testdata2.gz'; my @data = ; my $gz = gzopen( $file, 'wb' ) or die "Cannot open $file for gzwrite: $gzerrno\n"; my $line; foreach $line( @data ) { $gz->gzwrite( $line ) or die "Could not write gzipped data to $file: $gzerrno\n"; } $gz->gzclose(); my( $gzstat, $gzout ); ($gz, $gzstat) = deflateInit( { -Level => Z_BEST_COMPRESSION } ) or die "Could not construct gz writer: $gzstat\n"; open OUT, ">$file2" or die "Could not open $file2 for output: $!\n"; binmode OUT; foreach $line( @data ) { ($gzout, $gzstat) = $gz->deflate($line); die "Could not deflate data: $gzstat\n$line\n" unless $gzstat == Z_OK; print OUT $gzout; } ($gzout, $gzstat) = $gz->flush(); die "Could not flush gz writer: $gzstat\n" unless $gzstat == Z_OK; print OUT $gzout; close OUT; __DATA__ foo bar Judge my vow, sphinx of black quartz __END__