in reply to Per-distro versioning and dependency specification
Yeah, I disagree with pretty much everything you wrote
use/require work with modules, modules are the basis of reusable code in perl
Forcing the same $VERSION number in every provided package doesn't violate DRY but it also doesn't make sense as a standard or recommended practice
If you know, through consulting various Changes files, and through testing, that your code will only work if you require CGI 2001; then go ahead and add use CGI 2001; otherwise don't specify a version number
You can use the output of Devel::Modlist and note in the documentation, that your module (or app, whatever) is known to work with this combination of modules/versions
Or you can turn this list into a list of author/distribution-name.tar.gz and create a Task which only installs this combination of dependencies.
Also, you don't say whom this recommendation is intended for :) but clearly anyone writing a lot of code (GAAS with his LWP.../URI... or say authors of Moose ) have already made up their mind and adopted a practice