过去完成时的难点在于:有时候一句话中并没有出现两个事件,因此无法比较两个事件的先后。那为什么也用过去完成时呢?

下面的例句:

Bythetimehewastwelve,Edisonhadbegantomakealivingbyhimself.

实际上,在上面的例句中,仍然有着“先、后”之分的。不过,这次不是A、B两件事件的先后,而是有两个过去时间的“先、后”关系。

首先,句子中有个明确的过去时间点:12岁。说他“12岁”,显然是过去式。那么,紧接着说“他已经开始谋生了”,这个“谋生”是发生在“12岁”时,还是“12岁”前,还是“12岁”后?

答案是肯定的:他的“谋生”发生在“12岁”之前!也就是说,“12岁”已经是一般过去时,而在“12岁”之前发生的事,当然是过去完成时。

所以,在那么多表示时间状语的词中,大家要特别注意By、Until等的用法。可以说,在讲述过去的事件中,如果出现By……时间状语,很有可能要用过去完成时了。(当然,我说的是很有可能。)类似的时间表达方式还有Until、Before等。只要大家把握了过去完成时的基本含义,不管句子怎么变化,应该没有多大的问题。

Untilthen,hisfamilyhadn'theardfromhimforsixmonth.

此句的分析同上面差不多。首先有个明确的过去时间点"then"(那时),而"hadn'theard"发生在then之前(包括then)。所以此句用的是过去完成时。

再举几个例子,了解一下。

Wehadlearnedabout4000Englishwordsbytheendoflastterm.

Iwaiteduntilhehadfinishedhishomework.

Wehadgottothestationbefore10:00