1) may(might) have + done sth， can (could) have + done sth 表示过去，推测过去时间里可能发生的事情。例如：
Philip may (might) have been hurt seriously in the car accident. 菲力浦可能在车祸中受了重伤。
Philip can (could) have been hurt seriously in the car accident.
2) must have +done sth，对过去时间里可能发生的事情的推测，语气较强，具有"肯定"，"谅必"的意思。例如：
——Linda has gone to work， but her bicycle is still here. 琳达已经去上班了，但她的单车还在这儿。
——She must have gone by bus.肯定乘巴士去的。
3) ought to have done sth， should have done sth表示本应该做某事，而事实上并没有做。否定句表示"不该做某事而做了".例如：
You ought to (should) have been more careful in this experiment. 你当时在做试验时应该更仔细点。
He ought not to have thrown the old clothes away.他不该把旧衣服扔了。(事实上已扔了。)
ought to 在语气上比should 要强。
4) needn't have done sth表示本没必要做某事，但做了。例如：
I dressed very warmly for the trip， but I needn't have done so. The weather was hot.
5) would like to have done sth表示本打算做某事，但没做。例如：
I would like to have read the article， but I was very busy then. 我想读这篇文章，但太忙了一直没读。