Generally we use the perfect modals for:

1. Events that didn’t happen in the past
2. Events that couldn’t have happened.

Should Have / Shouldn’t Have

Uses:
1. Regret
2. Strong judgement against others

– examples

1.
I failed my test; I should have studied harder
I feel sick: I shouldn’t have eaten all those hamburgers

2.
I’ve been worried about you. You should have called!
They’re going to get divorced because of you. You shouldn’t have kissed her!

Could Have / Couldn’t Have

Uses:
1. Possibilities / Impossibilities
2. Mild judgement of another
3. Disbelief

– examples

1.
Thank god you were there: they could have died.
I could have gone if I hadn’t had to work.
He couldn’t have killed your dog: he was on holiday.

2.
Why did you buy that? You could have bought the blue one.
You could have called me! I wanted to go to the party too.

3.
No way! You couldn’t have paid that much.
What? I don’t believe you. China couldn’t have beaten Brazil 5-0.

Would Have / Wouldn’t Have

Uses
1. Willingness / unwillingness to do something
2. Showing how different people would act

– examples

1.
I would have called, but I had no credit left.
I wouldn’t have gone, but it was his birthday.

2.
You bought the red car? I would have bought the blue.
You know, if he had been here he would have punched you.

Must Have

Uses
1. Logical Conclusion

– examples

1.
The lights are off; they must have all gone to bed.
The house is soaked. The dishwasher must have leaked.

Exercises

1. Choose the right ‘modal + have’
(i) There was a cake. Peter was home all day. Now there is no cake.
(ii) She was waiting for his call. He didn’t call her. Now she is upset.
(iii) He called his friend about his problem. I think that was a bad idea: in my opinion calling a doctor was a better idea.