Infact, I was not using either qq or qw - the values come from earlier in the script. I tried your test and the array has exactly the amount of elements that I thought.
OK, it sounds like your code is fairly different from what you've posted. You're going to have to sprinkle print statements or use the Perl debugger to see what's going wrong. My little test loop worked fine with your sample data, modified as I outlined above, so something else must be the problem.