From: "Florian Aßmann" Date: 2007-08-31T22:48:44+09:00 Subject: Re: Weird problem with DATA and __END__ Hi Michael, 1. DATA *constant* becomes defined: DATA.inspect # => "This is the data in test1.rb." > require 'test2' *snip* 2. test2 becomes loaded 3. test2 reads lines from DATA(0) to DATA(EOF) and puts them >> puts "test2.rb = " + DATA.readlines.to_s test2.rb = This is the data in test1.rb. >> # ignored unless it's called first >> __END__ >> This is the data in test2.rb. *snip* 4. test1 reads lines from DATA(EOF) to DATA(EOF) and puts them > puts "test1.rb = " + DATA.readlines.to_s test1.rb = > __END__ > This is the data in test1.rb. Your dealing with a constant here, you should expect that it won't change. Ok, you maybe expected that the require behaves like the ruby-bin... Regards Florian