Using the :: notation is not a "use hack" by itself.
This is used, quite properly, to have modules be in catergories, e.g.
XML::Parser,
IO::Socket, etc.
What I was referring to was taking advantage of this
notation to load a module based on its location, instead
of based on its name. The way to do this task
in a way which does not have cavaets is to modify @INC (e.g. using lib) so you can load the
module in question using its real name.
Even if this approach did work, I find it to be bad style
-- a use line should tell you what module you
are using, it should not be something that needs to be
modified when you just move files around.