<?xml version="1.0" encoding="windows-1252"?>
<node id="995878" title="Unusual IO::Uncompress::Gunzip behavior" created="2012-09-26 17:22:22" updated="2012-09-26 17:22:22">
<type id="115">
perlquestion</type>
<author id="499232">
cmv</author>
<data>
<field name="doctext">
Hi Monks!
&lt;p&gt;
I'm seeing some unusual IO::Uncompress::Gunzip behavior, that doesn't seem to track with how the gzip command works. Please help me understand this difference.

Basically, if I have a number of gzipped files in a directory, and run the command
&lt;code&gt;
cat files* | gunzip -c
&lt;/code&gt;

I get the contents of all the files to stdout. However, if I do a similar thing from inside a perl script, using IO::Uncompress::Gunzip, I only get the contents of the first file.

Here is my test script (for unix):
&lt;code&gt;
use strict;
use warnings;

use IO::Compress::Gzip qw(gzip $GzipError) ;
use IO::Uncompress::Gunzip qw(gunzip $GunzipError) ;

my $file;
for my $txt ( qw(File1| File2| File3|) ) {
	$file = "/tmp/tst${txt}.gz";
	print STDERR "$file\n";
	gzip \$txt =&gt; $file or die "gzip failed: $GunzipError\n";
}

my $contents = `cat /tmp/tst*`;
print STDERR "contents=$contents\n";

my $out;
gunzip \$contents =&gt; \$out or die "gunzip failed: $GunzipError\n";
print STDERR "Here comes the decrypted stuff:\n$out\n";

print STDERR "Now we use the gunzip command to do the same:\n";

print STDERR `cat /tmp/tst* | gunzip -c`;
&lt;/code&gt;

Any pointers are greatly appreciated!
&lt;p&gt;
Thanks
&lt;p&gt;
-Craig</field>
</data>
</node>
