TIMTOWTDI. I loathe programs that use Modern::Perl, common::sense (yeah, right, not!), exact, or nonsense: They add dependencies that are not in core just to declare stuff that is in core already.
I call these convenience modules (or pragmata). However useful they might be in your own working environment and force you into behaving well, adding them as a requirement to a CPAN module will increase the complexity of the requirements to probably no good use, as they are unlikely to be found on all your targeted systems and add a chance to break.
Declaring use 5.18.3; might be more than just wanting to use strict and/or a specific feature: to me this sets a threshold for immediate failures where that script is used on a perl that is too old. It signals me that my/our lowest supported locally installed perl has to be updated/upgraded.
If i need a module that uses Modern::Perl or Syntax::Contruct or whatever well thoughtthrough pragmatic module, I remove those declarations and replace them with what they declare to do, making it immediately clear to all maintaners following in my footsteps what the script/module depends on.
Note that I have no influence on what "best practice" in whatever modules is changed without me knowing or setting a new restiction (like no indirect; which I happen to agree with) that will break all my code. No thanks.
Enjoy, Have FUN! H.Merijn
|