The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/local/bin/perl

use IO::Uncompress::Bunzip2 qw( $Bunzip2Error );
use strict ;
use warnings ;

#die "Usage: gzcat file...\n"
#    unless @ARGV ;

my $file ;
my $buffer ;
my $s;

@ARGV = '-' unless @ARGV ;

foreach $file (@ARGV) {
    
    my $gz = new IO::Uncompress::Bunzip2 $file
         or die "Cannot open $file: $Bunzip2Error\n" ;

    print $buffer
        while ($s = $gz->read($buffer)) > 0 ;

    die "Error reading from $file: $Bunzip2Error\n" 
        if $s < 0 ;
    
    $gz->close() ;
}