I have not been able to get SOAP::Lite to output the XML needed to make this work. This is what the SOAP request should look like on the wire:
Orion.Events
Acknowledge
18793
The closest I have been able to get is this, which doesn't work correctly:
Orion.Events
Acknowledge
18794
Maybe that will be enough information for you to fix it.
Another option would be to switch to the REST endpoint. The JSON-format that it uses it easier to get right. Here's some Perl code for acknowledging an event that way:
require strict;
require REST::Client;
require JSON;
require MIME::Base64;
my $username = 'admin';
my $password = '';
my $hostname = 'latest-stable-builds.swdev.local';
my $swis = REST::Client->new();
$swis->getUseragent()->proxy(['https'], 'http://localhost:8888/');
my $headers = {
Authorization => 'Basic ' . MIME::Base64::encode_base64($username . ':' . $password),
'Content-Type' => 'application/json'
};
my $entityName = 'Orion.Events';
my $verbName = 'Acknowledge';
my $uri = "https://$hostname:17778/SolarWinds/InformationService/v3/Json/Invoke/$entityName/$verbName";
my $eventId = 18822;
my @eventIds = ($eventId);
my @args = (\@eventIds);
my $json = JSON->new->allow_nonref->utf8;
my $json_text = $json->encode(\@args);
my $response = $swis->POST($uri, $json_text, $headers);
print $response->responseContent();