sub deep_hash { my $h = shift; return $h unless @_; deep_hash($h->{shift()}, @_); } $xml = { 'depTar' => { 'name' => 'c_p20', 'loc' => 'srvr1' }}; print deep_hash($xml, qw/depTar name/);