Bangladesh found them in an unwanted position after losing four of their top-order batsmen in their first innings to give up their advantage on the opening day of the second Test in Dhaka on Thursday.
Left-arm spinners Abdur Razzak and Taijul Islam claimed four wickets each to help Bangladesh bowl out Sri Lanka for 222 runs on the first but any excitement that it brought was quickly gone with a batting collapse.
The Tigers finished the first day’s play with 56-4, still trailing Sri Lanka by 166 run on a pitch where batting seemed anything but easy.
Liton Das held the fort for the Tigers with 24 not out after Sri Lanka rattled the home side with early strikes.
Liton would resume second day’s play with Mehedi Hasan ( five not out overnight), who was sent at number six to protect Mahmudullah and Sabbir Rahman, the last two recognised batsmen.
Bangladesh got off to a shaky start losing Tamim Iqbal for four in the third ball of their first over as pacer Suranga Lakmal took a catch off his own bowling to complete his 100th Test wicket.
Mominul Haque, who scored a century in both innings of the drawn first Test in Chittagong, paid the price for his casual running as he was run out for a duck in the next over.
Lakmal bowled Mushfiqur Rahim next as the approach of former Bangladesh captain about leaving far too many balls did not bring in any reward.
Opener Imrul Kayes and Liton helped Tigers recover from 12-3 before Perera ended the resistance of Imrul for 19. The left-hander was out leg-before just two overs before the stumps to leave Bangladesh in a precarious position.
It was not how Bangladesh wanted to finish the day after Razzak and Taijul, who finished with 4-63 and 4-83 respectively gave them the edge with ball on a first-day track.
Razzak, playing his first Test in four years, struck in fifth over of the innings and despite a happy-going approach of Kusal Mendis the Tigers kept making regular breakthroughs.
Razzak removed Mendis for 68 but Roshen Silva made a fighting 56 to take Sri Lanka to a decent first innings total after they were held to 110-6 just after the lunch break.
Silva was involved in two dogged partnerships with Perera (31) and Akila Dananjaya (20) against a persistent Bangladesh bowling attack before he was the last man out.
Taijul and Mustafizur Rahman, who took 2-17, shared last five wickets, leaving Razzak content with just four wickets in his comeback Test.
Want stories like this in your inbox?
Sign up to exclusive daily email
More Stories from Cricket