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".]
|