Perera returned figures of 5/55 as Sri Lanka picked up seven wickets in the last eight overs of Afghanistan innings on a pitch that looked to be on the slower side.
Opting to bat after winning the toss, Afghanistan were off to a cautious start with the openers Mohammad Shahzad (34) and Ihsanullah Janat (45) putting on 57 runs in just under 12 overs.
Spinner Akila Dhananjaya made the first breakthrough when he had Shahzad trapped in front of the wicket. It was a loose shot and attempting to reverse sweep a length ball proved to be his undoing.
There was another half-century stand, between Ihsanullah and Shah, as the Afghanistan dressing room looked relaxed at the Sheikh Zayed Stadium.
However, Sri Lanka found another wicket after the two batsmen added exactly 50 runs for the second wicket. Umpire Gregory Brathwaite was not impressed with Akila's shout for an lbw, prompting the Sri Lankans to go for a review, and got the decision in their favour.
Returning to the side after missing the tournament opener against Bangladesh, off-spinner Akila returned with tidy figures of 2/37 in his 10-overs spell on a wicket that played slow, making stroke-making difficult.
Skipper Asghar Afghan came to the middle, but his stay was short-lived as Shehan Jayasuriya foxed him, the two wickets in as many overs reducing Afghanistan to 110 for three at he end of the 26th over.
An 80-run partnership ensued between Shah and Hashmatullah Shahidi (37), helping Afghanistan to 190 when Dushmantha Chameera sent the Afghan top-scorer back to the pavilion. Shah's knock included five hits to the fence.
Shahidi was the next man to get out, falling to Perera. Mohammad Nabi scored 12-ball 15 before the seasoned Lasith Malinga cut short his stay in the middle.
The Lankan pulled back things in the death, picking up seven wickets, with Thisara doing the bulk of damage.