Есть ли модуль для рекурсивного поиска в хешах и массивах? То есть, допустим что бы сделать grep фильтр
| Код | $data = { one => [ 'target' ], two => { foo => target }, three => 'target', four => {foo => bar} };
for (keys %$data) { dump $data->{$_} if Search($data->{$_}, qr/target/); #дамп one, two, three }
|
Так же, хотелось бы, что бы умел находить путь к целевому элементу, например так:
| Код | $data = { foo1 => { bar => { baz => 10 }, foo2 => [ { foo3 => 'target' }, 'baz', ], baz => [1, 2, 3], } }
$path = Find($data, qr/target/); dump $path; #out: #$VAR1 = { # foo1 => { # foo2 => [ # { foo3 => 'target'} # ] # } #}
#Либо так print $path; #out: #$VAR1->{foo1}{foo2}[0]{foo3}
|
|