foreach my $param (@_) { if (@templates) { warn "Adding parameter: $param"; my $template = shift @templates; my ($prefix,$typename) = SOAP::Utils::splitqname($template->type); my $method = 'as_'.$typename; # TODO - if can('as_'.$typename) {...} warn "Method name: $method"; my $result = $self->serializer->$method($param, $template->name, $template->type, $template->attr); push(@parameters, my$ v = $template->value($result->[2])); warn "Adding parameter with value: " . Dumper($v); } else { push(@parameters, $param); } }