in reply to grep return a set of references

You could use map and return scalar references to the original hashrefs...

@$search_array = map {$_->{key_inn} eq $$out_href{key_search} ? \$_ : () } @$aref_hrefs_inn;

Of course, in your code which loops through @$search_array you'll need to apply ${...} here, there and everywhere to dereference the scalar refs.

perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'