use strict; use SOAP::Lite; use HTTP::Cookies; my $soap = new SOAP::Lite ->proxy( 'http://host.domain.com:80', cookie_jar => HTTP::Cookies->new( ignore_discard => 1 ) ) ->readable(1) ; my $data = SOAP::Data->name( 'login' => [ SOAP::Data->name('user_name' => 'uname')->attr({ xmlns => ''}), SOAP::Data->name('password' => 'upass')->attr({ xmlns => ''}), ], )->attr({ xmlns => 'data.someservice.somedomain' }); my $env = SOAP::Serializer->envelope( freeform => $data ); print $env, "\n";