From: John Joyce Date: 2007-04-23T22:38:12+09:00 Subject: Return of gets gets Not long ago I posted about gets gets I said it acted a bit like a Heredoc. I've since realized that it is actually more similar to readlines In fact, it behaves identically thus far. example: irb(main):004:0> lines = readlines ff fff akenll329 \n kls => ["ff\n", "fff\n", "akenll329\n", "\\n\n", "kls\n"] irb(main):005:0> puts lines ff fff akenll329 \n kls => nil irb(main):006:0> lines = gets gets fff ff ahoy \n lll ll => "ff\nahoy\n\\n\nlll ll\n" irb(main):007:0> puts lines ff ahoy \n lll ll => nil Now if you create a file such as: putsgetsgets.rb containing only: puts gets gets Then run the file, passing it some other file's text: ruby putsgetsgets.rb < otherfile.whatever It will output the same same as if you create a file: putsreadlines.rb Containing: puts readlines Then do the same: ruby putsreadlines.rb < otherfile.whatever The difference is of course it is not a developed method like readlines. Thus, it doesn't respond quite the same to methods such as length. readlines.length will return the number of lines. gets gets.length will return the number of characters.