Needn’t + Have + Past Participle
Express an unnecessary action, which was, nevertheless, performed
- I needn’t have knocked at the door since, in this way, I awoke the baby. (But I knocked)
- You needn’t have bought the flowers.
Should + Have + Past Participle
Indicate that the past obligation was not fulfilled or carried out
- You should have locked the door before leaving the house. (But you didn’t lock it.)
Ought to + Have + Past Participle
Express an unfulfilled duty or obligation
- Paul ought to have waited until the lights were green before he crossed the street. (But he didn’t wait.)
Would + Have + Past Participle
The third conditional
- I would have gone to university if my parents had had more money. (The speaker didn’t go to university.)