SYNOPSIS
        object load_object(string name)

DESCRIPTION
        Load the object from the file <name> and return it. If the
        object already exists, just return it.

        This efun can be used only to load blueprints - for clones, use
        the efun clone_object().

        If strict euids are enforced, the cloning object must have
        a non-zero euid.

EXAMPLE
        // Update and reload the standard player object
        destruct(find_object("/std/player"));
        load_object("/std/player");

HISTORY
        Introduced in LDMud 3.2.6.

SEE ALSO
        clone_object(E)
