Whilst working with with perl 5.005.03 at the moment, I have come across an annoyance with a number of modules on CPAN.
It appears that a number of modules include the use 5.006
directive (presumably as a result of creation using h2xs
), setting the minimum level of Perl required for execution to be 5.6, without good reason. For the most part, the only 5.6 version specific features employed in most of these packages is the use of our
declarations in place of use vars
for package-wide variables.
Whilst I recognise that some modules, really do depend upon version specific elements of Perl (an excellent example of this is the only
module with its use of an object within @INC
), I see the use of mandates for specific versions of Perl something which must be done with great care.
What happened to the concept of backward-compatibility?
Re:Backwards compatibility
ajtaylor on 2003-03-04T15:44:29
I'd have to disagree.:-) We're still running 5.005 at work, but only because a module we depend on (Apache::ePerl) wouldn't run under 5.6 and the person trying to apply the patch at the time couldn't get it to work. So we stuck with what worked. We also don't have enough tests in place yet to comfortable test everything with a newer perl. Yes, we know we're behind the times. And for personal projects I control I use hosting services with 5.6.1. But I've also worked with a couple providers who had something REALLY ancient like 5.004.