The 75-year-old Hillarys victim was in his vehicle in the car park about 1:40pm yesterday when police say two men approached him to ask for a cigarette lighter.
The man was then assaulted with a knife and the two men allegedly fled the scene together with a third man.
The victim was taken to Royal Perth Hospital with serious injuries to his face and arms.
Police said a short time later, a 48-year-old man was assaulted in Ashmore Drive in the nearby suburb of Sorrento while he was unloading sand from his ute.
He was taken to Sir Charles Gairdner Hospital with a broken eye socket and skull fractures.
The accused, from Banksia Grove, is due in Perth Magistrates Court today charged with aggravated grievous bodily harm and grievous bodily harm. Police are speaking with two other men.