The captaincy switch is only partly a consequence of on-field performance. Although Sri Lanka have comfortably lost all three series that they played under Perera, the board and selectors have replaced him after he was deemed to have played a central role in the contracts standoff between the players and board, over the past few months.
While Perera is believed to have encouraged the group to continue holding out, Shanaka it seems had been among the first to agree to sign Sri Lanka Cricket's tour contracts for the series against India - the move that essentially ended the dispute. Several players have voiced concerns that the events that led up to the tour contracts being signed, and the within-group discussions that have followed, have created substantial disunity within the Sri Lanka team.
The board had said it would field a second-string squad against India if the first-string players didn't sign the tour contracts. According to some players, the group had decided early on Tuesday to continue defying the board. However, some players - Shanaka included - had signed the contracts soon after.
The expected sacking of Perera, by the same selectors who installed him, will come days after coach Mickey Arthur praised Perera's leadership. "Kusal led the team very well in very trying times," he had said on talkSport's Following On podcast. The decision to replace Perera is not believed to have come from Arthur.
If his appointment is confirmed, Shanaka will become Sri Lanka's sixth captain in less than four years, with Dinesh Chandimal, Angelo Mathews, Lasith Malinga, Dimuth Karunaratne and Perera having all held the role since the start of 2018.
Shanaka has only one previous experience with leading the national team - when Sri Lanka whitewashed Pakistan in a three-match T20I series in 2019.
Andrew Fidel Fernando is ESPNcricinfo's Sri Lanka correspondent. @afidelf