PERL Installed with three new packages

I added three packages to the build, File::Slurp, WIn32::OLE, and LWP::Curl. Each of them listed as success, but Net-Curl failed. So, I don’t know if it is because of LWP::Curl or something else.

Has anyone else received such errors.

Hi @plumlr, Thank you for posting here! the team will look into it and advise accordingly.

Thank you.

I work for the VA and the server I worked on had Strawberry PERL.
Everything worked, but we are moving to a new server, and with VA’s strict compliance rules, only ActiveState Perl 5.28 was allowed.

When I told the IT individual who installed it about adding the three packages, I indicated PPM or CPAN. But apparently, those won’t work.

That is why I am trying to install this on my home workstation so I can relay to the IT individual on what to do.

I have a deadline to meet so if you could come up with a solution, that would be wonderful.

The state tool appears to be in beta, so how does one add packages to an existing build?
How does one uninstall a current build?


Yes, LWP-Curl depends on Net-Curl to talk to the Curl library. Unfortunately, the Curl library is not native to Windows, so Net-Curl fails to build for Windows.

Some other Perl distributions provide non-Perl third party C libraries as part of their installer, and that’s why they are able to get modules like Net-Curl to work. Since those third party libraries are not part of Windows and are not part of Perl, they have separate licenses. In some cases, those licenses are compatible with the licenses used by the other Perl distributions, but are incompatible with the ActiveState license terms. I’m not sure this is the case for the Curl library yet, but it could be the case. I’ll look into that.

  • More -
    Curl uses it’s own license. While’s it not incompatible with ours, it doesn’t exactly match any standard language, so the automated license scanners won’t know it can be used.

Our build systems will still be unable to compile Net-Curl if they don’t have the curl library to link against and instructions for how to use it. If we can put the library on the systems, it’s still going to take time to get the rest of the necessary work done, and that probably won’t match your deadlines.

Can you work without WWW-Curl? If you remove a failing module from your pick list, the builder will restart. If there are no other issues, your project should complete.

There is no mechanism to add modules to deployed ActivePerl builds that have not been installed with the State Tool. The mechanism to add modules is to build a new installer, and replace the deployed build with the new one. State Tool based installers will be standard issue for all 5.32 builds. The State Tool is not expected to exit beta status for Perl versions older than 5.30 any time soon.

If you used one of the Featured Projects as a basis for your 5.28, then you will have a standard MSI or EXE installer as a result. Both of those can be uninstalled from the Add/Remove Programs tool, or by restarting the original installer and selecting the Remove option.

If you went with a completely custom build from scratch for 5.28, then you may have a State Tool beta build. Those are virtual environments, and can simply be deleted since they don’t make any permanent changes to the system.

Did some research on this, and did find a work-around.

Brief synopsis of work.
I use REDCap for a research effort where I need to pull as well as update data.
REDCap provides an API for PERL, Python, R, and SAS.
They have an API playground, where you can generate the code, and then copy/paste for your own needs. For example, to get information on a project, the API playground generates this for the code:
use strict;
use warnings;
use LWP::Curl;
my $data = {
token => ‘api token’,
content => ‘project’,
format => ‘json’,
returnFormat => ‘json’
my $ch = LWP::Curl->new();
my $content = $ch->post(’,
print $content;

I found an alternative method:
use strict;
use warnings;
use HTTP::Request::Common qw(POST);
use LWP::UserAgent;

    my $ua = LWP::UserAgent->new();  
    my $req = POST '', [ 
     token => 'api token',
     content => 'project',
     format => 'csv',
     returnFormat => 'csv'
    ]; #--, '' did not need 
    my $content = $ua->request($req)->as_string; 

    print "Content-type: text/html\n\n"; 
    print $content;

Because the REDCap site is secure, authorized users can create a 32 hex digit API token, and that token can be used on any workstation. I also found that you do not need the REFERER.

Feel free to pass this along for others using LWP::Curl ( which as explained is not supported under WIndows ) and who are looking for an alternative.


1 Like