in reply to So close...

I think I fixed my problem. You both were right in that it was splicing past the last element. I figured out why. It had to do with this line of code.
my $lastval = $holder[$#holder]; @holder = (1 .. $lastval);
The last element in the array was not the length of the array!!!! Therefore it was creating a new array that was too long...and splicing on that the next generation!!!
$num_of_elements = scalar @holder; @holder = (1 .. $num_of_elements);
fixes the problem! WOW this is a great feeling having fixed it! Is this how you monks feel every day?