(Called away from keyboard)

Compare last with:

          if (!found) then
             puts "Unknown  #{f}"
          end
          data = nil
          GC.start   # garbage collect

.... which will garbage collect more often.

Best,

daz