#!/usr/bin/perl
use
strict ;
use
warnings ;
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
>) {
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() ;
}