deref ($_[0]->{$1}, $_[1]); #### sub deref { return \$_[0] unless $_[1] =~ s/^-([\w\._]+)//; $_[0]->{$1} ||= {}; # Vivify an anonymous hash if needed. deref ($_[0]->{$1}, $_[1]); }