G'day Bod,

I was going to provide an answer specific to your Business::Stripe::Webhook module; however, the link you provided resulted in "Error 404 - Not Found", so I can't do that.

[Note: I've made reference to v5.16.3 based on what you wrote in "Re^2: Multidimensional arrays".]

I see ++hv has already supplied an excellent response. The information I've given below is intended to be complementary.

Do you have a 'use VERSION;' statement in your code? I'd generally consider it to be a good idea to include one; although, it's not essential. In Makefile.PL, a MIN_PERL_VERSION entry should mirror this.

"The modules I have selected are all core."

They may be core in v5.16.3 but not necessarily in your MIN_PERL_VERSION. I assume you have this code:

use strict; use warnings;

As warnings is not dual-life (i.e. can't install separately from CPAN), you'll need at least:

use 5.006;

based on:

$ corelist strict warnings Data for 2022-05-27 strict was first released with perl 5 Data for 2022-05-27 warnings was first released with perl v5.6.0

Here's when the modules that you listed first entered core:

$ corelist JSON::PP HTTP::Tiny Digest::SHA Time::Piece Data for 2022-05-27 JSON::PP was first released with perl v5.13.9 Data for 2022-05-27 HTTP::Tiny was first released with perl v5.13.9 Data for 2022-05-27 Digest::SHA was first released with perl v5.9.3 Data for 2022-05-27 Time::Piece was first released with perl v5.9.5

And here's the versions you'd get with v5.16:

$ corelist -v 5.016 JSON::PP HTTP::Tiny Digest::SHA Time::Piece JSON::PP 2.27200 HTTP::Tiny 0.017 Digest::SHA 5.71 Time::Piece 1.20_01
"I strongly suspect that I could go for earlier ones ..."

As you wind back your MIN_PERL_VERSION, you'll need an increasing number of modules from CPAN. Some examples (undef indicates not in core for that Perl version):

$ corelist -v 5.010 JSON::PP HTTP::Tiny Digest::SHA Time::Piece JSON::PP undef HTTP::Tiny undef Digest::SHA 5.45 Time::Piece 1.12 $ corelist -v 5.008 JSON::PP HTTP::Tiny Digest::SHA Time::Piece JSON::PP undef HTTP::Tiny undef Digest::SHA undef Time::Piece undef

Unless module installations are performed manually, utilities like cpan and cpanm will install the latest from CPAN. These modules may have dependencies with later versions (than those in core) and will also need to be installed.

As I believe you're using Strawberry Perl, you can install different Perl versions using berrybrew. I haven't used it myself, but have heard good things; and the author is fellow monk stevieb, so I'm sure you could get good support if that's needed.

Install v5.14; don't add any CPAN modules; add your Business::Stripe::Webhook code; and see if that works without any problems. Repeat with other Perl versions. Try with just a few CPAN installations. You could end up with something like this in Makefile.PL

MIN_PERL_VERSION => 5.012, PREREQ_PM => { Digest::SHA => 0, Time::Piece => 0, JSON::PP => '2.27200', HTTP::Tiny => '0.017', },

[Aside: Nothing to do with your question, but I thought I'd alert you to a security vulnerability in HTTP::Tiny. See: "CVE-2023-31486"; "RFC: Making SSL_verify safer"; "Change verify_SSL default to 1, add ENV var to enable insecure default".]

— Ken


In reply to Re: Deciding dependency versions by kcott
in thread Deciding dependency versions by Bod

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.