一、must have done sth.一定做某事。表示对过去事情的较有把握的推测，这时只能用在肯定句中，“肯定/必须已经干过…”，在否定句和疑问句中用can't或couldn't或can/ could，例如：
1.From what you said, she must have told you all about it.
2.The light was out. They must have gone to bed.
3.He must have done it when I was off with those assholes.
4.The man must have done something right, more right than all jumpers before.
5.China must have done something supremely right to produce the economic miracle we observe.
6.You must have done something to her.
7.He must have done sometime. Certainly he had always been jealous of him as a child.
二、can/could have done sth.本来能够做某事，而实际上未做
1.But we could have done it all so much better.
2.If you do a good job, you may tell yourself that it wasn’t good enough or that anyone could have done as well.
三、can't/couldn't have done sth.不可能做过某事
1.I could't have done it without you.
2.We could't have done it without you.
四、ought to/should have done sth.过去本应该做某事而实际上并没有做
1.You should have done it when you first saw them blooming this spring.
2.Even if it’s something you should have done earlier in the week or missed a detail on.