Hello All. Sorry if this is obvious, but I have looked over the list (and pickax) and not been able to solve it. I am trying to iterate over a collection of objects, calling a method defined within each object. I have a class Card, with a method 'show' defined. I then create an array of these Card objects. For example: >hand = Array.new >ace = Card.new( some_parameters ) >hand[0] = ace >hand.push(Card.new( some_other_parameters)) etc. Now, >ace.show #works: =>"Card: A of Spades hand[0].show # works, calls the 'show' method, executed for the first 'card', the ace: =>"Card: A of Spades" But, >hand.each {|c| c.show} # dosn't produces the following, which looks to me like a dump of the array: =>[#<Card:0x2647f8 @face="Up", @value=12, @suit="s">, #<Card:0x20e3e4 @face="Up", @value=0, @suit="d">] I fear I am misunderstanding something fundamental here, as I thought the block parameter c should get each element of the array in turn, and, each element being an object, I could call the methods associated with that object. Thanks for any insight, Will -- Posted via http://www.ruby-forum.com/.