use Compress::Zlib qw/gzopen gzeof gzread gzclose gzerror/; unshift @INC, sub { my ($cref, $filename) = @_; $filename = "/path/to/compressed/libs/${filename}.gz"; return unless -f $filename; my $text; { my $gz = gzopen( $filename, 'rb') or warn $gz->gzerror() and return; while ( !$gz->gzeof() ) { my $buffer; my $bytes = $gz->gzread($buffer); warn $gz->gzerror() and return if $bytes == -1; $text .= $buffer; } $gz->gzclose(); } require 5.008; open my $fh, '<', \$text or return; $fh; }