John Lam (CLR) wrote: > From the docs: ?If the optional wrap parameter is true, then the loaded > script will be executed under an anonymous module, protecting the > calling program?s global namespace.? > > Secondary question, should require ?2.rb? respect the true flag from the > original load()? For what it's worth, JRuby obeys the same semantics, though of course we generally just do what Ruby does. In JRuby top-level code executes under a special instance of Object, in a special top-level frame. My understanding of load is that it protects that object and frame from variables defined in the target script, but constants are defined at a higher level (i.e. on Object) and are therefore visible whether you require them or not. I believe MRI functions much the same way. - Charlie