What's the correct sentence?
a) I have been to Rome and while I was there I ate pasta.
b) I have been to Rome and while I was there I have eaten pasta.
English Language Learners Stack Exchange is a question and answer site for speakers of other languages learning English. It only takes a minute to sign up.Sign up to join this community
A relatively simple way to determine whether the present perfect is possible in a given clause is to look for time phrases in the clause and if they are found, whether they exclude the present. Any time phrase that excludes the present will mean that the present perfect cannot be used in that clause. while I was there refers to the past, so the present perfect have eaten cannot be used in that clause. Two days ago, I ate pizza.
I have been to Rome and while I was there I
have eatenate pasta.
You will sometimes need to refer to the speech context to make the determination. For example, if it is 10AM, "this morning" refers to the morning you are in now, refers to the present. But if it is 4PM, 16:00 hours, "this morning" refers to the past:
It is 4PM now and getting close to dinner time, and I am starting to feel hungry, but I won't choose pizza because I ate pizza this morning.
In the same way, if the time phrase in the clause does not exclude the present, the present perfect is not excluded as an option:
It is 4PM now and getting close to dinner time, and I am starting to feel hungry, so I think I'll have a slice of pizza even though I have eaten pizza already today.