#### my $soapHndl = SOAP::Lite->new()->service($wsdl)->readable(1)->on_fault(\&SoapErrorHandler); my @queryObj = (SOAP::Data->type('string')->name('startRecord'=>$STARTRECORD), SOAP::Data->type('string')->name('maxLimit'=>$MAXLIMIT), SOAP::Header->name('AuthenticationInfo')->value( \SOAP::Header->value( ( SOAP::Header->name('userName')->value('xx'), SOAP::Header->name('password')->value('xx') ) ) ) ); my @RemedyList = $soapHndl->OpGetList(@queryObj); #### xx xx BAD LINE>> 0 10 #### The virtual PM is build via "generate_stub(/usr/lib/perl5/site_perl/5.8.8/SOAP/Lite.pm:3264" foreach (@{$services->{$service}{parameters}}) { # This is a workaround for https://sourceforge.net/tracker/index.php?func=detail&aid=2001592&group_id=66000&atid=513017 next unless ref $_; $self->{'_stub'} .= " SOAP::Data->new(name => '".$_->name."', type => '".$_->type."', attr => {"; $self->{'_stub'} .= do { my %attr = %{$_->attr}; join(', ', map {"'$_' => '$attr{$_}'"} grep {/^xmlns:(?!-)/} keys %attr); }; $self->{'_stub'} .= "}),\n"; } Builds: SOAP::Schema::generate_stub(/usr/lib/perl5/site_perl/5.8.8/SOAP/Lite.pm:3270): 3270: join(', ', map {"'$_' => '$attr{$_}'"} DB<136> p $self->{'_stub'} package HD_Netcool_v1Service; # Generated by SOAP::Lite (v0.712) for Perl -- soaplite.com # Copyright (C) 2000-2006 Paul Kulchenko, Byrne Reese # -- generated at [Thu Apr 7 10:57:38 2011] # -- generated from http://stsnymidrem2dr/arsys/WSDL/public/devsupport/HD_Netcool_v1 my %methods = ( OpSet => { endpoint => 'http://stsnymidrem2dr/arsys/services/ARService?server=devsupport&webService=HD_Netcool_v1', soapaction => 'urn:HD_Netcool_v1/OpSet', namespace => 'urn:HD_Netcool_v1', parameters => [ SOAP::Data->new(name => 'OpSet', type => 's0:SetInputMap', attr => { DB<163> p Data::Dumper->Dumper($services->{$service}{parameters}[0]{_attr}) $VAR1 = 'Data::Dumper'; $VAR2 = { 'name' => 'OpGetList', 'type' => 's0:GetListInputMap' }; ####