Help for this page
for ($i=0;$sof_to_delete>0;$sof_to_delete--) {shift(@sof_i);}
splice(@sof_i, 0, $sof_to_delete);
while (defined($_ = shift(@sof_i)) { ... body of your foreach (@sof_i) ... }