use SOAP::Lite +autodispatch => uri =>'api.php', proxy => 'api.php', on_fault => sub { my($soap, $res) = @_; die ref $res ? $res->faultdetail:$soap->transport->status, "\n"; }; #retuns 1 , which is correct print SOAP->authenticate("user", "pass"); #retuns 0 , which is incorrect, should return 1 print SOAP->checkAuthStatus();