I was chatting with a friend of mine last night and we were discussing
facilities for updating 24/7 systems.

That made me think, is there a way for a running program to request a
re-load of a class's definition?

I tried putting a require inside a loop that constructed objects of the
class defined in that file.  Even if I change the contents of the
require-ed file while the program is running, it still keeps creating
objects based on the original class definition.

It appears that require is smart and only ever loads a file once per
execution (I tried putting a print statement at the top of the file and
it only came out once).

Is there some way to force it to forget that it's done so and hence
re-load a file?