Slash Boxes
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

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • 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, then you have to ensure that any IP you have licensed or signed agreements about is removed, then any references to that IP, then you want to remove company-specific code and stuff, finally you try and ensure it runs outside of the office/datacenter.


          @JAPH = qw(Hacker Perl Another Just);
          print reverse @JAPH;