From: James Rasmussen Date: 2010-07-18T18:03:06+09:00 Subject: Re: Infinite Loop in Code -- Logic Error David, Thank you so much for the help, that makes a lot of sense. Your code was much more elegant than mine. It was one of those mind-broadening moments, haha. Concerning my own implementation, I think I figured out the problem as to why it wasn't working. My code was ugly, but the logic (I thought) was sound. I was doing some more debugging, trying to figure out why it would only get to six strings of output, then fail. I found it out. Here, I make my duplicate for my array: rand_spies = spies.dup rand_spies.sort_by{ rand } #perform spying operations... . . . However, dup copies instance variables over, and it IS a shallow copy, but if you change an instance variable, based on my debugging, it changes the original as well. I found this out when (using netbeans) I put a watch on these variables: spies[k].found rand_spies[l].found spies[k+1].found rand_spies[l+1].found I found that, even though my rand_spies array was randomized and shallow copied, it was still making changes to the original array. I found this when I saw that the rand_spies[l+1].found was being changed when I found a match in the spies[l].found So my question is this: Is there any way to make a shallow copy of an array of objects, where it passes all the values over, without passing the reference over? I'm thinking a pass-by-value C++ copy sort of deal. That's what I need. Much thanks, James Rasmussen -- Posted via http://www.ruby-forum.com/.