On 24 Aug 2001 11:40:56 +0900, Dave Thomas wrote:
>     addrFields = ["First Name", "Last Name", "Phone Number"]
>     addrData = []
>     loop do
>       addrFields.each do |prompt|
>         print "\n\t#{prompt}: "
*         line = gets
*         break if !line || line == "END\n"
*         addrData << getLine.chop

Did you mean "line" instead of "getLine"?

I think this is a bit nicer:

  line = gets ? $_.chomp : "END"
  break if line == "END"
  addrData << line

>       end
>       break if addData.size < addFields.size
>       aBook.puts addrData.join("\t")
>       addrData.clear
>     end

While I cringe at breaking twice, this version does have less conceptual
overhead than any alternatives I can think of.