IB2017 has asked for the wisdom of the Perl Monks concerning the following question:

Dear Monks

I need to retrive a https webpage. The following script fails on my macOS HighSierra (Perl 5.22) :

#!/usr/bin/perl use strict; use warnings; use LWP::Simple; my $url='https://SOMEPAGE'; my $agent = LWP::UserAgent->new; $agent->timeout(8); my $response = $agent->get($url); if ($response->is_error) { print $response->code . "\n"; print $response->message . "\n"; } else{ print my $HTML = $response->decoded_content(); }

With the following error:

501 Protocol scheme 'https' is not supported (LWP::Protocol::https not ins +talled)

Installing LWP::Protocol::https fails because it fails to install the dependency Net::SSLeay. Now the question is: do I have some alternatives without installing things in my machine outside of Perl? To install Net::SSLeay I need to install something like openssl (brew install openssl). But I want to distribute my tool and I do not want the users to do this, as they are not computer savvy. Do you thing there are other options, pure Perl options?

.

Disclaimer: I m really not an expert of https

Replies are listed 'Best First'.
Re: Alternative to LWP and LWP::Protocol::https
by Anonymous Monk on Jun 10, 2018 at 20:08 UTC
    I don't think Perl can do it directly without the proper software. On Mac you can use cURL. If writing for other platforms too you could detect OS and use whatever they have built-in like wget for linux, maybe explorer.exe for windows, etc.
Re: Alternative to LWP and LWP::Protocol::https (binaries)
by Anonymous Monk on Jun 10, 2018 at 21:48 UTC

    distribute binaries not source code to users who cant/wont install prerequisites

    For decades people have been wishing somebody would magically eliminate the billions of code lines and man hours that went into some binary prerequisites ....

    distribute binaries

    duh