The forms are present because they use the present tense of the auxiliary verb have, and perfect because they use that auxiliary in combination with the past participle of the main verb. (Other perfect constructions also exist, such as the past perfect: "I had eaten.")