A statement from Sri Lanka Cricket (SLC) said Perera failed a random test during the recent tour of Pakistan.
The 25-year-old, who will be replaced by Kaushal Silva in New Zealand, played five one-day internationals and two Twenty20 matches during the tour.
SLC says it will test his B sample in line with anti-doping regulations.
The governing body added it would "make every endeavour" to enable Perera to resume his career "at the earliest opportunity in compliance with the ICC regulations".
Silva, 29, joins the squad for two Tests, five one-day internationals and two T20 matches in New Zealand from December 10 to January 10.
(BBC News)