You can think of a block as a method with no name.  A block gets passed 
to another method, and that other method calls the block with the 
specified arguments:

def my_meth(x)
  yield(10, x)
end

my_meth(5) do |s, t|  #the parameters of the block get assigned the 
arguments in the yield()
  puts s+t
end

--output:--
15

Unless you know what the yield() statement looks like, you don't know 
how to write the parameters for your block.  The docs tell us that the 
each() method for an array 'yields' each element of the array to the 
block in turn, i.e. the block should take one argument.

-- 
Posted via http://www.ruby-forum.com/.