Re your second question concerning
She has put the pudding in the fridge for three hours (it's much easier for other readers to find past questions and explanation if you start a new thread for each question and give it a specific title) :
No, it doesn't mean a repeated action, and the time phrase does not depend on the the verb. If it were repeated and if the time phrase did refer to the verb, it would be :
She has been putting the cake in the oven for three hours. - clearly an unusual way to cook.
In this use of the present perfect ( ie past event(s) with a present result) there is a contrast in meaning between the simple and continuous. Compare :
Present perfect simple : I've cut my finger! = a single past event with a present result ( = my finger is bleeding)
Present perfect continuous : Someone has been cutting pictures out of this book! = continuous or repeated actions with a present result ( = the book is ruined)
So here the sentence is understood as :
She put the cake in the oven and it's cooking at the moment. It must cook for three hours. She has put the cake in the oven = single past action with present result (=
and it's cooking at the moment) with the meaning of the time phrase being inferred to refer to the length of time of the cooking - not of the action of putting it in the oven.
This is a good example of why, although the present perfect verb form includes reference to a past event, it is actually a present tense - the focus is on what is happening at the moment - even if that is not explicitly stated in the sentence - and the past event is only the incidental cause of the present situation.
See this thread for an analysis of the present perfect simple and continuous :
difference btwn been doing/ done?