use Archive::Tar; # using the cli utility gunzip # -c causes the file to be 'cat'ed open F, "gunzip -c $filename |"; my $tar = Archive::Tar->new(*F);