A man has been charged after he allegedly punched a newborn in the head while the boy was strapped to his father's chest in a baby carrier in a Perth carpark.

Police say the 27-year-old approached the father, who was a stranger to him, outside the Saint Hotel in Innaloo on Sunday afternoon.

A man has been charged after allegedly punching a newborn baby in the head outside a Perth pub. (9news)

It is understood the man asked the dad “is that baby real?”, and when he replied “yes”, officers allege he punched the 10-week-old in the head.

The man was charged with endangering the life, health or safety of a person, and is due to appear in Perth Magistrates Court later this month.

A man has been charged after allegedly punching a newborn baby in the head outside a Perth pub. (9news)