if (eval { require IO::Compress::Gzip } ) { use subs qw (gzip); use vars qw ($GzipError); IO::Compress::Gzip -> import ( qw (gzip $GzipError) ); $status = gzip "${FileName}" => "${FileName}.gz" or _error "gzip failed: $GzipError\n"; } else { system qq[gzip -c ${FileName} > ${FileName}.gz]; }