I've had the same problem, and this was my solution:
# It turns out that the SOAP-ENV and SOAP-ENC tags used by default
# by SOAP::Lite are not agreeing with the customer's
# API. That needs soapenv and soapenc tags. Therefore, we now will
# fiddle with SOAP::Lite's constants. Isn't life great?
$SOAP::Constants::PREFIX_ENV = "soapenv";
$SOAP::Constants::PREFIX_ENC = "soapenc";
my $soap = SOAP::Lite
->uri(SOAP_URL)
....
and later on:
# We've fiddled with SOAP::Lite's constants. As mod_perl might
# keep these constants, we'd better be sure and change them back
# before anyone else notices the changes... I've got a t-shirt at
# home which says "I love SOAP::Lite", but I'm afraid to wear it.
$SOAP::Constants::PREFIX_ENV = "SOAP-ENV";
$SOAP::Constants::PREFIX_ENC = "SOAP-ENC";
Cheers,
Eelko de Vos