Leader of Birmingham.pm [pm.org] and a CPAN author [cpan.org]. Co-organised YAPC::Europe in 2006 and the 2009 QA Hackathon, responsible for the YAPC Conference Surveys [yapc-surveys.org] and the QA Hackathon [qa-hackathon.org] websites. Also the current caretaker for the CPAN Testers websites and data stores.
If you really want to find out more, buy me a Guinness
Links:
Memoirs of a Roadie [missbarbell.co.uk]
[pm.org]
CPAN Testers Reports [cpantesters.org]
YAPC Conference Surveys [yapc-surveys.org]
QA Hackathon [qa-hackathon.org]
And the offending line?
use 5.008;
I'm running a 5.6.1 version of Perl. That isn't likely change anytime soon, and there are several other people quite happily running 5.6.1 around the world too. So why discriminate unnecessarily? There have been two modules recently, that I thought looked interesting and investigated further, to discover (not unsurprisingly) that there was no need for the line at all. The one author I have contacted so far, was thankfully very friendly. It was his first module, so was quite happy to listen to suggestions. That module has now been uploaded without the 5.8 dependency.
In the reverse, it is quite useful to testers, as well others, that if your module depends on 5.8 features (or depends on another module which depends on 5.8 features), that you include the 'use 5.008' line in your Makefile.PL. It saves a lot of grief and bogus test reports as CPANPLUS doesn't always pick it up if it's just in the module.
I'll try and take a little extra time in future, to see if other 5.8 modules are really 5.8 modules.
use 5.8 (Score:2)
makeon the same machine as youuse.Re:use 5.8 (Score:2)
I can see it might make a difference if you make on a 5.6 (or other) machine, but in the long run it helps the user if it bombs before getting any further than 'perl Makefile.PL'.
Re:use 5.8 (Score:2)
Well, as you've noticed by now, this is probably from people running h2xs blindly using the generated module stub. As for the "CPAN testers" idea, I would be mortified if I uploaded a CPAN module and it failed tests. I gots me a reputation to maintain :)
Re:use 5.8 (Score:2)
Perhaps mailing the cpan-testers list or the code review list (which has gone quiet these days) with a request to test on other Perls and/or other boxes might be an idea, then sending test reports to the author only. I have certainly attempted it when asked, and similar requests in the past seem to have been met with favourable responses from others. Providing it didn't get overwhelmed of course.
In the end it comes down to knowing what's out there and how to use it. Whether thats h2xs, the
Same problems as 5.6 (Score:2)
When 5.6.x came out, some people put:
in their Makefiles/module, again often for no reason. I think that the "
our" keyword was often the only valid reason why they specified 5.6.x, and that's often avoidable.I know my modules have only been tested with a limited subset of Perl versions, I say
use 5.006;because I do use "our" and I don't have any older Perls to test it with. I think things have moved on enough for me to say this, but accept patches, whereasuse 5.008;by default seems a littl-- "It's not magic, it's work..."
Re:Same problems as 5.6 (Score:1)
Re:Same problems as 5.6 (Score:2)
IMO it would have been nicer if there was a commandline option that allowed you to specify a specific version, rather than always assuming the current version onwards. I haven't used h2xs in a very long time, so never realised it did that.
Oh well, at least I know why now.
Re:Same problems as 5.6 (Score:2)
I would sooner remove the version line and wait for cpan-testers to notify if it fails on a particular version or platform.
I try not to use non perl 5.5 syntax in any CPAN code. Writing for CPAN is different to writing work projects where you know what modules will be installed and which version.
This is why releasing work code to CPAN is nontrivial - first you have to check its not going to lose your employer (or yourself) competitive advantage, the
@JAPH = qw(Hacker Perl Another Just);
print reverse @JAPH;