In your case its pretty simple. The buffer is being reused. So same memory being added multiple times to the candidate.
Just slap on a .dup when adding it.

        candidate ~= line;


Thanks a lot replacing the line above with

candidate ~= [line[0].dup, line[1].dup];

My problem is solved .

Reply via email to