http://qs1969.pair.com?node_id=793857


in reply to IO::Compress::Gzip blank output

The docs clearly state that parameters can not be bare scalars (unless they are file paths, which is not the case for you). Try this:
use IO::Compress::Gzip qw(gzip $GzipError) # other code... IO::Compress::Gzip::gzip(\$content, \$newContent) or die "gzip failed: + $GzipError\n"
Also, you're doing the file slurp in a wrong and slow way:
my @transferFileContents = <FILE_TO_TRANSFER>; foreach(@transferFileContents) { $content .= $_; }
It is possible to write this as:
$content = do { local $/; my $rv = <FILE_TO_TRANSFER>; $rv };
which means:
$content = do { # minimize scope local $/; # make input separator undef 'till the end of this scope my $rv = <FILE_TO_TRANSFER>; # get all contents $rv # return it };