How to implement Web Services in Perl?
Programming Web Services with Perl is a bit dated (2002?) but still should be read.
It also has a companion web site.
I prefer XML::Compile::SOAP. I admit that I am not a heavy SOAP user, but I have heard from heavy SOAP users on IRC that XML::Compile::SOAP is a dream come true for them.
The other day, I was writing a small script to extract data from a SOAP-accessible database. I tried XML::Compile::SOAP, and the whole data-extraction function ended up being five lines! One line to load the WSDL, one line to compile the function I wanted to call, one line to call that function (the Perl argument was automatically validated against the WSDL specification, and converted from native Perl structures to the weird Java structures on the other end), and one line to munge the result a bit. After hearing people complain about how hard SOAP is, I couldn't have been happier.
JMHO.