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.