
Object::container is an object container with an oo interface. it is used to make singletons out of ordinary classes.
for example, if you want to have a single instance of www::mechanize throughout a program, you can do object::container->register('www::mechanize') somewhere and then you can retrieve that instance of www::mechanize from anywhere else with object::container->get('www::mechanize');
class::singleton is a similar module, which makes subclasses singletons. unlike class::singleton, object::container can make any class a singleton.
object::registrar is another similar module, but it does not support lazy loading.