Hi all, I posted a similar question a short time ago. But I don't think the replies help me understand the behaviors. So I post a short version( sorry if it bothers you again). I have the following script. I don't call Song#to_s in my script but I can print all the attributes of a song. Why is that? Thanks, Li ######### class Song def initialize(name,artist,duration) @name=name @artist=artist @duration=duration end #attr_reader :name, :artist, :duration def to_s "#@name\t#@artist\t\t#@duration" end end s=Song.new('song1','author1','20') puts s ######output >ruby ruby20c.rb song1 author1 20 >Exit code: 0 __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com