foreach ($_->operation) { my $opername = $_->name; my $soapaction = $_->operation->soapAction; my $namespace = $_->input->body->namespace; my (@parts, @headers); foreach ($s->portType) { next unless $_->name eq $porttype; foreach ($_->operation) { next unless $_->name eq $opername; my $inputmessage = SOAP::Utils::disqualify($_->input->message); my $inputheader = $_->input->header ? SOAP::Utils::disqualify($_->input->header) : ''; foreach ($s->message) { if ($_->name eq $inputmessage) { @parts = $_->part; } elsif ($_->name eq $inputheader) { @headers = $_->part; } } } } $services{$opername} = {}; for ($services{$opername}) { $_->{endpoint} = $endpoint; $_->{soapaction} = $soapaction; $_->{uri} = $namespace; $_->{parameters} = [@parts]; $_->{header} = [@headers] if @headers; . } . }