in reply to Universal request objects

CGI.pm works fairly well on the command line, it's very good as the mod_perl and CGI interface. SOAP adds a whole new abstraction level on top of HTTP so it just plain can't be interchangeble with basic CGI unless you're willing to make a lot of assumptions (i.e. constict the SOAP interface). In the same way, CGI.pm's command line interface doesn't allow you to easily simulate POSTs and HTTP headers (though you can, if you're willing to set environment variables and feed STDIN).

If I were you I'd probably go with CGI or CGI::Simple's (edit: or CGI::Lite::Request's) input parsing interface and expand that with whatever SOAP functionality you want (but as I don't know what you expect of the SOAP interface this is a hard question to answer in more detail).