in reply to searching polygons not merged
combine(merge) polygons -- deja vu? Maybe look into modifying C (eventually, Fortran) wrapper in my answer there, to return a boolean result for intersection. Considering observed speed vs. GPC-based solution, it may be OK to have pure Perl looping over original array, as in OP, and calling this function, eliminating failed (i.e. "merged" -- ??) polygons while doing so.
In Section
Seekers of Perl Wisdom