#!/usr/bin/perl use strict ; use warnings ; use IO::Uncompress::Gunzip qw($GunzipError); die "Usage: gzgrep pattern [file...]\n" unless @ARGV >= 1; my $pattern = shift ; my $file ; @ARGV = '-' unless @ARGV ; foreach $file (@ARGV) { my $gz = new IO::Uncompress::Gunzip $file or die "Cannot uncompress $file: $GunzipError\n" ; while (<$gz>) { print if /$pattern/ ; } die "Error reading from $file: $GunzipError\n" if $GunzipError ; } __END__ foreach $file (@ARGV) { my $gz = gzopen($file, "rb") or die "Cannot open $file: $gzerrno\n" ; while ($gz->gzreadline($_) > 0) { print if /$pattern/ ; } die "Error reading from $file: $gzerrno\n" if $gzerrno != Z_STREAM_END ; $gz->gzclose() ; }