前文中,我们了解到,might, may, could, can, will, would, should, ought to, must等9个情态动词,可以表示推测性意义,其后可以接动词的一般形式、进行体形式和完成体形式。其实,“情态动词+完成体”除了具有推测性含义,还可以表示虚拟意义。具体而言:

1)must + have done:用于肯定句,表示推测,意为“一定(已经)……”。

    You must have finished the work. 你一定已经完成工作了。

2)can + have done:用于否定句或疑问句,表示推测,意为“可能(已经)……”。

    He can’t have left so soon. 他不可能走得这么早。

3)could + have done:可用于肯定句、否定句或疑问句,表示推测、责备或遗憾等,意为“可能……”、“本来可以……”、“本来应该……”等。

    You could have finished it, but you failed. 你本可以完成,但你失败了。

4)should [ought to] + have done:可用于肯定句、否定句或疑问句,表示责备或遗憾等,意为“本来应该……”。

    You should have helped me, but you just sat and watched there.

    你本应该帮我的,但你只是在那坐着看。

5)need + have done:用于否定句或疑问句,用于否定时意为“本来不必”,用于疑问句时意为“有必要……吗”。

    You needn’t have helped me because I could make it.

    你本没必要帮我的,我自己可以做到。

6)may + have done:用于肯定句或否定句,表示推测,意为“可能(已经)……”。

    She may have seen this film. 她可能已经看过这部电影了。

7)might + have done:用于肯定句或否定句,表示推测,意为“可能(已经)……(此时might可换为 may);

    She may/ might have seen this film. 她可能已经看过这部电影了。

    另外还可以表示过去可能发生的事结果未发生,意为“本来会……”(此时 might不能换为 may)。

     Tom might have given you more help, even though he was busy.

    尽管汤姆很忙,他或许也会多给你一些帮助。