Add
use SOAP::Lite +trace => 'debug', readable => 1; and *see* what you get, what I get when I make some changes is this
SOAP::Transport::HTTP::Client::send_receive: POST http://127.0.0.1:120
+3 HTTP/1.1
Accept: text/xml
Accept: multipart/*
Accept: application/soap
Content-Length: 739
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://127.0.0.1/MyModule#getAllPassages"
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<getAllPassages xmlns="http://127.0.0.1/MyModule">
<no:userName xsi:type="xsd:string">XX</no:userName>
<no:password xsi:type="xsd:string">YY</no:password>
<no:systemActorID xsi:type="xsd:int">23</no:systemActorID>
<no:fromDate xsi:type="xsd:dateTime">2016-06-06T09:00:00</no:fro
+mDate>
</getAllPassages>
</soap:Body>
</soap:Envelope>
That seems to be almost 99% of what you're looking for
Also, ?wsdl is a strange url for ->proxy, usually that goes with ->proxy