#!/usr/bin/perl use strict; use warnings; use IO::Socket::SSL 'debug3'; use LWP::UserAgent; use LWP::ConsoleLogger::Everywhere (); use JSON; BEGIN { $ENV{HTTPS_DEBUG} = 1; $ENV{PERL_NET_HTTPS_SSL_SOCKET_CLASS} = 'IO::Socket::SSL'; # force LWP::UserAgent to use Net::SSL in case that IO::Socket::SSL is installed too } sub log_list { my $par = shift; my $list = shift; my $query = "https://server.com/script.cgi?action=aaa&par=" . $par . "&"; my $ua = LWP::UserAgent->new(); $ua->ssl_opts( SSL_cert_file => '/path/to/cert', SSL_key_file => '/path/to/key', SSL_version => 'TLSv1_2', verify_hostname => 0, ); my $res = $ua->get($query); if($res->is_success) { my $json = $res->decoded_content; my $decoded_json = decode_json($json); push (@$list, @{$decoded_json->{'result'} }); } else { die $res->status_line; } } my %list; log_list('value', \%list); print %list;