I have to chime in here to disagree with what you seem to be advocating for Makefile.PL dependencies—if you know that a given version of a module is required (for a feature or a bug-fix, for instance), then of course you should absolutely put that in your dependency list. But if you say "there should always be a version number," you inevitably encourage people to put the version number they have installed (since that's the only one they can prove works), even if "any old version" would in fact be fine. Thus forcing a potentially unnecessary upgrade on anybody who wants to install their module, which is (in my personal opinion) bad manners.

This is not to say that I disagree with the general position that having the correct version number for module dependencies is important—for something with as many moving parts as a web framework, in fact, I'd encourage the author to do some checking to establish what the minimum version numbers actually are. But I find the "require the latest version of everything" philosophy can have very annoying results when applied indiscriminately (are you listening, h2xs? I thought not.), and this seemed an opportune moment at which to point out some of the objections to it.

If God had meant us to fly, he would *never* have given us the railroads. --Michael Flanders