ActiveState PERL Version 5.36.3 acts different from Version 5.22.1

I have been using version 5.22.1 for years, and it did what I needed to do. After all these years, I need some additional functionality, so I thought installing the latest might help.

Which is when I found that ActiveState has changed the installation process totally. Anyway, I went through the installation of the “recommended” version, and installation seemed to go fine.

I then ran the following simple code through both versions.

use HTTP::Tiny;

my $url ='any url in here ’ ;

my $response = HTTP::Tiny->new->get($url);
print $response->{content};

Version 5.22.1 runs this fine and gives me the HTML of the page.
Version 5.36.3 gives me the following errors;

IO::Socket::SSL 1.42 must be installed for https support
Net::SSLeay 1.49 must be installed for https support

When I use the old ppm command for Version 5.22.1, it gives me a list of 271 packages installed.

When I used the new “state” command: “state packages”, it showed nothing.

So I used “state” to “install” IO-Socket-SSL, and Net-SSLeay, and now those are the only two that show up in the “state packages” list.

But it did not change functionality. The error messages are still there, and no execution.

It doesn’t complain about HTTP::Tiny.

I tried installing Strawberry. But it had a problem with a more complex part of my original project, so I went back to ActiveState 5.22.1, which works fine.

Anybody got any ideas about what I need to do to get 5.36.3 actually working?


You are correct: ActiveState has changed the way we generate Perl distributions:

  • ActivePerl 5.22 was a “one size fits all” distro assembled by ActiveState that included hundreds of popular packages. But these static distros quickly become outdated, with far too many vulnerabilities.
  • ActiveState Perl 5.36 is a minimal distro (just Perl and its core libraries) and it’s up to you to add just the packages/modules/libraries you require for your project. This creates a distro with a minimal attack surface that will automatically be built for you, and can be updated at any time to minimize vulnerabilities.

One other key difference is that ActivePerl is installed globally by default, while ActiveState Perl is installed in a virtual environment, by default (although it can also be installed globally).

wrt the errors you are getting after installing the missing packages, you can try to the following:

  1. Make sure you are authenticated (run state auth)
  2. Try closing your command line and re-opening it, and then try activating your project globally by running state use <orgname>/<projectname>

Let us know if you are still having problems.

I was coming back here to say:

I re-installed from scratch, got the modules required, and yes, I got it all working. Thanks.