in reply to
Appending $VERSION to package name in Makefile.PL
... Is that even a good idea?
Personally, I wouldn't put the version in the module name/path. In the long run, keeping all code in sync that references the module gets a little unwieldy for my taste, and without any real benefit, AFAICT.
I'd rather use a version control system to quickly check out / switch between multiple versions — if that is the idea.
Or, if you prefer multiple physical subdirectories named after the versions, put another directory above the root of the module name space, i.e. .../0.9/My/Module/Submodule.pm, and then adjust PERL5LIB or similar to point to the respective toplevel directory. Sure, that doesn't allow things like My-1.1/Module-0.9/Submodule-2.3.pm, but I'm not sure if that's a good idea anyway :) In case you really want the latter, you could manage a bunch of symlinks (if your file system supports them) pointing to the desired versions, so you can keep the version numbers out of the use statements...
P.S.: use My::Module-0.9 wouldn't work for syntactial reasons — you'd at least need something like My::Module0_9.