Il exerce de nombreux métiers pour vivre, étant, parmi d'autres emplois, ouvrier, pêcheur ou salarié chez un armurier, avant de devenir professeur, puis écrivain. Il publie son premier roman, intitulé The Butcher's Boy(en) en 1982, un récit qui suit les aventures de Michael Schaeffer, un tueur en série. Succès critique et commercial aux États-Unis, ce livre est couronné du Prix Edgar-Allan-Poe du meilleur premier roman en 1983. Perry poursuit alors sa carrière de romancier et fait paraître plusieurs livres, principalement des thrillers et des récits policiers.
En 1985, il intègre l'équipe de scénaristes de la sérié télévisée policière Simon et Simon à partir de la quatrième saison. Il signe neuf scénarios d'épisodes et en co-produit également près d'une quarantaine au cours des cinq saisons suivantes. Il écrit ensuite quelques épisodes pour diverses séries.
En 2012, il prend la place laissée vacante par le romancier Grant Blackwood(en) et poursuit la série consacrée aux aventures de Sam et Remi Fargo avec l'écrivain Clive Cussler.
Plusieurs de ses romans ont été traduits en France, dans différentes collections et par divers éditeurs.
Publié en français sous le titre Le Garçon boucher, traduction de Jean-François Gallaud, Paris, Presses de la Cité, coll. Paniques, 1985.
Sleeping Dogs (1992)
Publié en français sous le titre Chien qui dort, traduction de Jean-François Gallaud, Paris, Albin Michel, coll. Spécial Suspense, 1999, réédition Paris, Pocket no 11326, 2002.
Publié en français sous le titre Une fille de rêve, traduction de Jean-François Gallaud, Paris, Albin Michel, coll. Spécial Suspense, 1995, réédition Paris, Pocket no 4499, 1997.
Dance for the Dead (1996)
Publié en français sous le titre La Danse des morts, traduction de Marie Muracciole, Paris, Fayard, 2000, réédition Paris, Pocket no 11624, 2003.
Shadow Woman (1997)
The Face-Changers (1998)
Publié en français sous le titre Faux-visages, traduction d'Eric Diacon, Paris, Fayard, 2000.
Blood Money (1999)
Publié en français sous le titre Mort d'un parrain, traduction de Marie-France de Paloméra, Paris, Fayard, 2001, réédition Paris, Pocket no 11625, 2004.
Publié en français sous le titre Mortelle Assurance, traduction de Jean Colonna, Paris, Fayard, 2003, réédition Paris, Pocket no 11626, 2005.
Pursuit (2001)
Dead Aim (2002)
Nightlife (2006)
Publié en français sous le titre Blonde de nuit, traduction de Marie-France de Paloméra, Paris, Seuil, coll. Thriller, 2009, réédition Paris, Points policier no P2426, 2010.
Fidelity (2008)
Strip (2010)
The Old Man (2017)
Publié en français sous le titre The Old Man, Paris, L'Archipel, 2024