From: Thomas Junier Date: 2001-04-19T01:41:34+09:00 Subject: [ruby-talk:13808] local vars in case Hi, Here's something that bit me: [0,1].each {|n| print "n: #{n}\n" case n when 0 a = 0 print "a: #{a}\n" # -> 0 # never heard of b when 1 b = 1 print "a: #{a}\n" # Name Error print "b: #{b}\n" end } I would have expected the local variable 'a' to be defined the first time the case statement is executed (i.e., when n == 0), and to remain in scope from then on. But this appears not to be the case, as I get a NameError when n == 1. I gather that variables defined in a 'when' clause are local to the clause? Or did I miss any obvious thing? My apologies if this question was already asked. I did a quick search on the archive and in th FAQ, but maybe it wasn't enough. Thanks Thomas -- Thomas Junier Swiss Institute of Bioinformatics http://pcisrec-d402b.unil.ch/~tjunier