Perera became a national hero in Sri Lanka after scoring an unbeaten 153 in Durban to power his side to an unlikely win in the first Test at Durban.
With Sri Lanka having an unexperienced bowling attack, it appears South Africa under-estimated their opponents.
South Africa's batsmen struggled mostly, with the exception of captain Faf Du Plessis and Quinton de Kock doing well as Vishwa Fernando and debutant left-arm spinner Lasith Embuldeniya took eight and six wickets respectively.
It seems certain that the hosts will include an extra batsman, either Theunis de Bruyn or Zubayr Hamza, while a more conventional mix of three fast bowlers and a spinner seems probable.
With Vernon Philander ruled out of the second Test, it will be interesting to see how South Africa formulate their team combination. Wiaan Mulder is likely to replace the wily seam bowler.
South Africa could also re-think their policy of short-pitched bowling against Asian opponents. It did not work in Durban and the surface in Port Elizabeth also tends to lack the pace and bounce of other South African venues.
South Africa have won five and drawn one of their most recent six Tests at St George's Park, including a 206-run win over Sri Lanka in two seasons ago.
Last season, after losing the first Test in Durban, South Africa turned the series against Australia around with a convincing six-wicket win in Port Elizabeth.
Kagiso Rabada, who had a poor first Test against Sri Lanka, will be returning to the ground where he took 11 wickets against Australia.
Faf du Plessis (capt), Dean Elgar, Aiden Markram, Hashim Amla, Temba Bavuma, Theunis de Bruyn, Zubayr Hamza, Quinton de Kock (wkt), Wiaan Mulder, Vernon Philander, Keshav Maharaj, Kagiso Rabada, Dale Steyn, Duanne Olivier
Dimuth Karunaratne (capt), Lahiru Thirimanne, Kusal Mendis, Oshada Fernando, Kusal Perera, Niroshan Dickwella (wkt), Dhananjaya de Silva, Suranga Lakmal, Lasith Embuldeniya, Kasun Rajitha, Vishwa Fernando