use SOAP::Lite; use strict; my $uri = "test_uri; my $proxy = "test_proxy"; my $service = SOAP::Lite ->uri($uri) ->proxy($proxy) ->on_action(sub{sprintf '%s/%s', @_ }); my $uname = "testuser"; my $pwd = "testpwd"; #my $username = SOAP::Data->name(username => $uname)->type('string')->uri($uri); #my $password = SOAP::Data->name(password => $pwd)->type('string')->uri($uri); my $username = dotnet_stuff("username", $uname); my $password = dotnet_stuff("password", $pwd); my $test = $service->Login($username, $password); print $test->result(); if($test->fault()) { my $error = join (', ', $test->faultcode, $test->faultstring); print "$error"; } sub dotnet_stuff { my $name = pop(@_); my $value = pop(@_); my $soap = SOAP::Data->name($name => $value)->type('string')->uri($uri); return $soap; }