From: Joseph McDonald Date: 2001-08-21T09:15:54+09:00 Subject: [ruby-talk:20039] Re: Ruby Article I like Dave's answer the best. It's a nice technique. Now I have this thing about reducing lines of code for no reason, so here is a savings of a line or 2: File.open('phonespec.txt', 'a') do |myfile| puts "Welcome to MyAddressbook. Please follow the prompts." puts "If you wish to end data entry, you may do so at any time" puts "by type the word END into a prompt." catch (:done) do loop do result = [] ["First name", "Last name", "Phone"].each do |prompt| print "\t#{prompt}: " result << gets.chop throw :done if result[-1] == "END" end myfile.puts result.join("\t") end end end Of course Dave's is better from a maintenance standpoint (and his also deals with input EOF), I'm just having fun. -joe