in reply to Loading the latest version of modules

It's hopeless. Give up.

Module versioning in interpreted languages can't be solved until the version number becomes part of the package identifier:

use aliased Foo3 => 'Foo';