#!/usr/bin/perl -w
#use strict;
use warnings;
use SOAP::Lite; # +trace;

# I have to lookup the URL from the WSDL
my $soap = SOAP::Lite->new(
    proxy => 'http://localhost:81/soap-wsdl-test/helloworld.pl'
);

# I have to lookup the SOAPAction from the WSDL
$soap->on_action( sub { "urn:HelloWorld#sayHello" });
$soap->autotype(0);

# I have to lookup the top level element's namespace from the WSDL
$soap->default_ns('urn:HelloWorld');

# I have to encode all parameters as SOAP::Data objects
# I have to know the order of parameters
my $som = $soap->call(
    "sayHello",
    SOAP::Data->name('name')->value( $ARGV[1] || '"Your name"'),
    SOAP::Data->name('givenName')->value( $ARGV[0] || '"Your given name"'),
);

die $som->fault->{ faultstring } if ($som->fault);

print $som->result, "\n";

