in reply to Re: Resolving 'prototype mismatch' warning
in thread Resolving 'prototype mismatch' warning

Solved: Thanks jdporter and choroba and corion (for help in CB).

By declaring a package name I can avoid the namespace collision:

if ( $compressor ) { my $namespace = 'My::' . $compressor; if ( ! eval "package $namespace; use $compressor; 1;" ) { die "Could not load $compressor - $@"; } else { ... } }
And then I can access the imported subs through my namespace by forming the full sub name into a string and by turning off strict refs:
} else { my $compress = "My::$compressor\::compress"; no strict 'refs'; my $compressed = &$compress( $raw ); use strict 'refs'; }

The way forward always starts with a minimal test.