This just showed up in 1.9 CVS.

Seems like you should be able to call #each_line on frozen strings:

ruby-cvs -e '"a\nb".freeze.each_line {|l| p l}'
"a\n"
-e:1:in `each_line': string modified (RuntimeError)
        from -e:1

-- 
matt