in reply to filter array based on 2 fields

I suggest that you re-structure your data so that the array contains hashrefs each one of which contains three keys.   For example...

$foo = [ { client => "Foo", status => "Alive", description => "Bletch" }, { client => "Bar", status => "Frobozzed", description => "Plugh" } ]

Now, what does that buy you?   A lot, actually.   Each element in the array is now one thing, not three things, and furthermore it is a reference to that “one thing.”   There can be as many references-to it as you wish, and each reference requires little additional storage.

You can sort an array, specifying a comparison-function for use in comparing the elements, and the <=> operator was designed just for you.   It is easy to find duplicates this way, and to push all of the non-dupe hashrefs onto a separate list ... and notice that you are not duplicating the record; only making another reference to what is already there.   The entire 3-tuple of related values stays together, and it survives in memory for so long as at least one reference to it continues to exist.