A four-year-old boy has been sexually assaulted by a 50-year-old Perth man who knew him, police claim, The child was allegedly assaulted in 2013 with police charging a Dudley Park man with one count of sexual penetration of a child under 13 years of age on Wednesday, after a lengthy investigation.

The man has been bailed to appear in Perth Magistrates Court in September.

Meanwhile, another man was charged on Monday with several offences relating to the historic sexual assault of a 14-year-old girl more than 25 years ago, in 1989.

Police alleged the 51-year-old man attacked the girl in a vacant house in Girrawheen.

He was charged with aggravated sexual penetration, deprivation of liberty, aggravated indecent assault and threatening to injure or case detriment to compel a person doing an act.

The man appeared in Perth Magistrates Court on Monday.