From: cremes.devlist@... Date: 2006-12-05T02:33:10+09:00 Subject: help, my 'case/when' code doesn't work I've been using ruby for several months now so imagine my surprise when I wrote something using the 'case' construct and I discovered that I didn't understand how to use it! What's worse is that even after looking through the Pickaxe and some code "in the wild" that uses 'case' I still don't see what I'm doing wrong. Here's the code in question: def case_test(obj) print "testing via case... " case obj.class when Array puts "obj is a #{obj.class}" when String puts "obj is a #{obj.class}" else puts "obj is unknown: #{obj.class}" end end def if_test(obj) print "testing via if... " klass = obj.class if klass == Array puts "obj is a #{klass}" elsif klass == String puts "obj is a #{klass}" else puts "obj is unknown: #{obj.class}" end end case_test(Array.new) if_test(Array.new) case_test(String.new) if_test(String.new) case_test(Hash.new) if_test(Hash.new) cremes$ ruby a.rb testing via case... obj is unknown: Array testing via if... obj is a Array testing via case... obj is unknown: String testing via if... obj is a String testing via case... obj is unknown: Hash testing via if... obj is unknown: Hash What am I doing wrong here?