for ($i=0;$i<=(scalar(@blocks));$i++) { if($blocks[$index]=~m/^\d/) { my $a=0; if($dist[$b]>=0) { do { $dump[$a]=$dist[$b]; $sta[$a]=$start[$b]; $sto[$a]=$stop[$b]; $a++; $b++; $index++; } until($dist[$b]<0); $flag=(scalar(@dump)); my $e=0; my $d=$flag-1; if($flag==1) { print CLUSTER "$sta[$d]\t$sto[$d]\n"; print STA "$sta[$d]\n"; print STO "$sto[$d]\n"; } else { print CLUSTER "$sta[$e]\t$sto[$d]\n"; print STA "$sta[$e]\n"; print STO "$sto[$d]\n"; } splice(@dump); splice(@sta); splice(@sto); } else { print CLUSTER "$start[$b]\t$stop[$b]\n"; print STA "$start[$b]\n"; print STO "$stop[$b]\n"; $index++; $b++; } } else { print CLUSTER "$blocks[$index]\n"; $index++; } }