That's certainly a valid solution, but of course TMTOWTDI
As for why the code produced the error in the first place, you are starting with an array of N elements, and you are iterating over a list of the indexes of the elements in that array. But while you iterate over those elements, you are deleting them from the orriginal array, which shortens it, but you've still got the indexes, so as you get to the end of your list of indexes, the last few indexes may not exist in the array anymore.
Ie: if $#good_ones is 9, and the camel picks up $good_ones5 and you splice it out of the list, then when that foreach loop reaches 9, $good_ones9, it's going to be undef (because it's off the end of the array)
Another valid solution would be to change your foreach(0..$#good_ones) to for(my $_=0;$_<=$#good_ones;), and only increment $_ if you do NOT splice the array. In that case, $#good_ones will be evaluated on each pass of the loop, and it will do the right thing as the array gets shorter and shorter.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
| & || & |
| < || < |
| > || > |
| [ || [ |
| ] || ] ||