open( INPUT, "gunzip < old.gz |" ) or die $!; open( OUTPUT, "| gzip > new.gz" ) or die $!; while () { # same as above... }