to have done 是表示主动意义的非谓语动词,发生在谓语动词之前;对应的被动形式是 to have been done;
having been done 是表示被动意义的非谓语动词,发生在谓语动词之前;对应的主动形式是 having done。
也就是说,在意义上,to have done = having done(主动); to have been done = having been done(被动),都发生在谓语动词之前。
但是,除非连接在某些动词后,否则一律优先使用 having done 和 having been done,而不使用 to have done 和 to have been done。