in reply to Load and unload modules ala dlopen();

Ok. I am obviously not explaining my question correctly. I am writing a MUD in perl. The core functionality runs as a deamon. Logged into the program I need to be able to load and unload modules that are different "rooms" so to speak. Unloading the module is just as important as loading the module because I want people to be able to add sections and test thier code without having to take the whole MUD down. Here is a little pseudo code example:
my $fname = < what the user entered in as thier new room name> my $t = $fname->new(); $t->init_room( $myself ); # do some stuff to the room. free( $t ) # hehehe... ok well something like this anyway.
It needs to be able to do this many, many times without eating up memory every time. Hopefully, this makes more sense.