if ( $tss{ $ids[ $first ] }{ start } > $tss{ $ids[ $second ] }{ stop } or $tss{ $ids[ $first ] }{ stop } < $tss{ $ids[ $second ] }{ start } ){ # No Overlap }else{ push @toDelete, $ids[ $first ]; # <<<< Note: changed $first to $ids[first] last; # <<<< Added 'last' to avoid deleting $first multiple times }