I an new to Ruby, but there seems to be something quite wrong with temporary variables inside blocks having any impact outside the block. code snippet1: animal = %w( cat dog cow duck ) vegetable = %w( tomato carrot onion ) vegetable.each { |animal| puts animal } p 'now animal is: ', animal # result is 'onion'!!! The scope of a temporary variable declared in a block (such as |animal|) should not extend beyond the block. You don't need new squiggles, just clearer definitions of what you have. -- doug edmunds my 2 cents.