in reply to CURL and Perl (it rymes!)
I would look at what HTTP requests Curl creates from that command line, and then recreate these HTTP::Requests for use with LWP::UserAgent. If Curl has no convenient way to show what it is sending, likely Wireshark or any other network sniffer will produce the data sent by Curl.
use HTTP::Request::Common; my $virtual_machines = GET( 'https://api.vps.net/virtual_machines.api10json', Accept => 'application/json', Content_Type => 'application/json', ); # perform request, passing the credentials either in the URL or settin +g up LWP::UserAgent ... print $response->as_string;
Setting new values is likely done via POST:
use JSON; my $new_values => [ machine1 => 100, machine2 => 200, machine3 => 300, machine4 => 400, ]; my $set_virtual_machines = POST( 'https://api.vps.net/virtual_machines.api10json', Accept => 'application/json', Content_Type => 'application/json', Content => [ 'magic_json_parameter_name' => encode_json($new_values ), ], );
In Section Seekers of Perl Wisdom