sub SOAP::SOM::childof { my $self = shift; local $self->{_current} = $self->{_current}; $self->match(shift) if @_; return wantarray ? map {o_child($_)} @{$self->{_current}} : @{$self->{_current}} ? o_child($self->{_current}->[0]) : undef; } print Dumper($som->childof('/Envelope/Body/[1]/[1]'));