On Wed, Mar 12, 2008 at 3:19 PM, Fred Talpiot <fredistic / gmail.com> wrote: > > unless true > puts "wrong wrong" > elsunless false > puts 'weird, but logical' > elsunless true > puts 'truly strange' > else > puts 'weirder yet' # This is what pops out! > end > Ruby is an interpreted language, so it ignores your "unless true" part and doesn't parse what's after it until the "else". Your code should look like that: unless true puts "wrong wrong" elsunless false puts 'weird, but logical' elsunless true puts 'truly strange' else puts 'weirder yet' # This is what pops out! end Nobu is right. Try "unless false" instead of "unless true" and you'll get a NameError