sub Dive { my ($ref, @keys) = @_; return unless defined($ref); for my $k (@keys) { if ($k =~ m/^-?\d+$/) { $ref = $ref->[$k]; } else { $ref = $ref->{$k}; } } return $ref; }