Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

barbie (2653)

barbie
  reversethis-{ku. ... m} {ta} {eibrab}
http://barbie.missbarbell.co.uk/

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]

Journal of barbie (2653)

Wednesday April 21, 2004
06:45 AM

Perl Elitism ?

[ #18418 ]
Why do several CPAN authors currently insist that I cannot use their code, unless I delete one little line from each of their modules (and occassionally in the Makefile.PL if they've thought about it) ? Why do they assume that I'm not good enough to use their code out of the box?

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.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • I don't put that in mine, but I probably should. Not because I use 5.8-specific features, but because I haven't tested it on anything lower. It's not sufficient to put that in the Makefile.PL, because you don't always make on the same machine as you use.
    • The CPAN testers would soon tell you if it didn't work on 5.8 :)

      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'.

      • 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 :)

        • A fair point.

          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

  • When 5.6.x came out, some people put:

    use 5.6.0;

    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, whereas use 5.008; by default seems a littl

    --
    -- "It's not magic, it's work..."
    • Its been a while since I looked into creating a CPAN module so I can't recall the recommended way to do it. I think if use use h2xs it automatically inserts a use for the version of perl you happen to be using.
      • Drat, just checked and you're right :(

        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.

        • there is a -b option iirc, just authors don't use it.

          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;