in reply to SOAP Modules (OO or not?)

It's called the "Simple Object Access Protocol", and it's basically exposing method calls, but it's typically implemented over stateless protocols (eg, HTTP). Therefore, if you're going to be creating new objects, you'll need to deal with maintaining state and ensuring that the objects are available from call to call. (because in the case of mod_perl, you're running under Apache, a forking server, so you'd want the same object available to each webserver child).

If I needed to do something like this, I'd probably have to go with a lightweight object, registered in a database. If they're small objects, you might be able to have the client pass them with each method call. (see Objects Access in the SOAP::Lite guide)

As for what you need in the code for the service -- 'use SOAP::Lite' is for the SOAP client. You'll want to use the appropriate SOAP::Transport class for your implementation.