> I've yet to read anything /really/ convincing for either side -
so I'd do whatever you're comfortable with myself.


In my case I tend to use synchronised version numbers. For big APIs (20+ classes) I often use Class::Autouse to recursively load them.

If two subsequent versions of the dist change the name of a module from
Foo::Bar to Foo::Baz, then the CPAN installer doesn't remove the old one, instead it keeps them both.


By using synchronised versions to describe a "set" of modules, I can write a fairly simple test script that recursively autoloads all the modules, and then checks all the versions are the same. This ensures that I didn't accidentally load in an old/incorrect/broken module I wasn't expecting.

Of course, this ONLY applies for very large APIs. In things where you are manually using each child module this won't matter so much (although I do it from habit anyways).

So, to add a specific recommendation

"When using automated recursive module loading, you should keep the version numbers the same"


Adam K

Reply via email to