I'm not very familiar with SOAP. I do have one perl script that uses SOAP::Lite and it seems to work.
The one thing I can see that may be missing from your script is you don't seem to be sending a user-id/password.
Try something like
sub SOAP::Transport::HTTP::Client::get_basic_credentials
{
return $user_id => $password;
}