From: Mike Barton Date: 2008-06-19T22:13:44+09:00 Subject: I don't really understand inject I think these methods should both do the same thing. The second works, however in the first I get errors that string is not matched, where hash is an instance of String not hash def sequences self.alignment.split(/\n/).inject(Hash.new) do |hash, line| id, sequence = line.split(/\s+/,2) # hash.class == String hash[id] = sequence end end def sequences hash = Hash.new self.alignment.split(/\n/).each do |line| id, sequence = line.split(/\s+/,2) # hash.class == Hash hash[id] = sequence end hash end