这真是一个长盛不衰的话题。我所看到的公开讨论最早追索到荷兰的著名杂志English Studies., 1956年第37卷第 42 页。第二次讨论也是在这个杂志,1975年第56卷第66页,有兴趣的网友可以去看看。
"We appreciate your help exceedingly, Captain Newman," said the Personage. "Now we have already discussed this affair at some length last night. Before making our final decision, we wanted to hear your latest news." Bernard Nowman, The Maginot Line Murders, ch. XIV, p. 260.
Erades的解释如下:如何划分过去时和完成时的使用范围是一个众所周知的难题,不仅初学者感到难,所有学英语的人都觉得难。基本原则实质上是极为简单的,当说话的人认为某个过去的行为、某种过去发生的事或某种过去的状态与现在没有联系时,用过去时,而认为有联系时就用完成时。然而这条标准具体运用起来就难了,因为究竟该用哪一种表达形式要取决于说话的人当时思想中某种不可捉摸的因素,试问一个学英语的外国学生哪里会知道呢?有时有外部标志可作依据,但往往没有。常常有个错误的想法,以为有了一个表示过去时间的附加语就必然要用过去时,这是不符合事实的。区分的原则依然是:说话人是否认为与现在有联系。在我们上面所引的那个句子中有两种关系:一种是与现在的关系 (We have discussed this affair,所以我们充分理解了),另一种是与过去的关系 (last night)。所以要用完成时是因为前一种关系比后一种更为重要。主要的是我们已经掌握了全部情况,至于什么时候知道的,那是次要的。
我个人观点倾向认为在Erades的那个年代他的解释是没有问题的,只是时过境迁,语言的演变的事实说明完成时与确定的过去时间状语联用已越来越少见,可以说完全被边缘化。这样的用法不是主流也不能推而广之,显而易见是弊大于利的。剑桥语法的作者Rodney Huddleston把这个内容放在了书中,本来是没问题的,只是用轻描淡写的语句进行了说明,算不上败笔,但是有误导的嫌疑,当然更谈不上什么亮点,因为这玩意很早就有人讨论过了,而且Erades的说法比Rodney Huddleston说的更容易让人看懂(有人说看不懂剑桥语法的解释,这很正常)。
我所喜爱的Wood博士并没有对这个问题谈论他的看法,不过他倒是讨论过另一种结构long ago可以和完成时搭配:
But the theory has long ago proved to be no logical proposition.
Wood博士的解释如下:所谓语法规则规定,如果提到过去某一点时间就不可以用完成时,其实这种结构并不异常,完全可以说 I have ceased to believe that long ago. 一方面的原因是因为ago 是从现在往后算的,人们觉得它与现在多少有点关系,因此用完成体并不错,另一方面的原因也许是因为long是个词义相当含糊的词,使人感到与其说它指发生某件事、某个行动的时刻,还不如说它指从当时到现在整个一段时期。如果说出了确切的数目,如 five years ago , 就不大会想到用完成体了。但是最主要的原因大概在于,用完成体时头脑中还没有出现long ago, 似乎只是后来才附带补提一下时间。
也就是说long ago这个词比较模糊,你可以理解为表示的是不确定的时间(用完成时),也可以是表示确定的时间(用过去时)。
最后,在当代英语中,PEU的作者Swan的解释是可以接受的。