So it's bad form to reply to my own question, but I figured out my
mistake:
On Tue, Jun 05, 2007 at 11:15:08AM +0100, Tom Hukins wrote:
> push @elems, SOAP::Data->name($key => $in{$key})
> ->type($type{$key});
Replacing
$in{$key}
with
SOAP::Data->value($in{$key})
does the cleverness I was after.
I blame the caffeine.
Tom