SOAP::WSDL appears to have been designed for this problem. Soap::Lite's POD says that it doesn't fully support WSDL. Something like ...
# This part is the big rebuild, as you no longer have
# to hand-roll your XML ... good thing, too
my $som=$soap->call( $method ,
name => 'value' ,
name => 'value' );
The intelligent reader will judge for himself. Without examining the facts fully and fairly, there is no way of knowing whether vox populi is really vox dei, or merely vox asinorum. — Cyrus H. Gordon