as zby pointed out...you're doing a tree search/flatten. a standard flattening of arrays in perl is simply assignment
@flat = (@this, @that, @the_other);...where the flat array now contains all elements of the assigned arrays, not pointers etc, and there is no way to re-create the original three arrays (without cheating) from the final flat array.