. . . print "----\n"; print Dumper $data; my $ref = qq|\$data->{$k}$path|; print "String: $ref\n"; if (my $val = eval($ref)) { push @results, ref($val) ? $val : eval "\\$ref"; } if (exists $data->{$k}) { print Dumper $data; push @results, rec_data($path, $data->{$k}); . . . #### $VAR1 = { 'foo' => { 'baz' => 'baz', 'bar' => 'bar' }, 'bar' => { 'baz' => 'baz' } }; String: $data->{foo}->{foo}->{bar} $VAR1 = { 'foo' => { 'foo' => {}, 'baz' => 'baz', 'bar' => 'bar' }, 'bar' => { 'baz' => 'baz' } };