in reply to Array undefining istelf?
Your code is complicated enough that you should be using strict and declaring all variables (in the sub as my() variables where possible).
A more concise way to say:
isfor ($i=0;$sof_to_delete>0;$sof_to_delete--) {shift(@sof_i);}
A perhaps better way to destructively use the beginning of an array, would be to replace both for loops in get_i with:splice(@sof_i, 0, $sof_to_delete);
Another possibility is to set the input record separator to "="x30 where you are reading into @sof_i (assuming it comes from a filehandle at some point) so you get only one array element per thing you want to handle.while (defined($_ = shift(@sof_i)) { ... body of your foreach (@sof_i) ... }
|
|---|