Perraud begon met voetballen in de jeugd van Blagnac en kwam via Toulouse Fontaines en Colomiers in de jeugdopleiding van OGC Nice terecht. Bij die club maakte hij in het seizoen 2016/17 zijn professionele debuut, op 8 december 2016. Op die dag werd in de UEFA Europa League in de eigen Allianz Riviera gespeeld tegen FK Krasnodar. Die club kwam via een treffer van Fjodor Smolov op voorsprong, maar door een benutte strafschop van Alexy Bosetti en een treffer van Maxime Le Marchand won Nice de wedstrijd met 2–1. Perraud mocht van coach Lucien Favre in de basisopstelling beginnen en speelde het gehele duel mee.[1] In twee seizoenen kwam Perraud tot vijf officiële optredens voor Nice en hierop werd hij voor een jaartje op huurbasis bij Paris FC gestald.[2]
Na een jaar op het tweede niveau vertrok Perraud definitief bij Nice, dat hem voor circa twee miljoen euro verkocht aan Stade Brest.[3] Hier maakte hij op 13 september 2020 zijn eerste doelpunt in de Ligue 1. Op bezoek bij Dijon opende hij drie minuten voor rust de score, waarna Irvin Cardona in de tweede helft zorgde voor de beslissende 0–2.[4] In de zomer van 2021 maakte Perraud voor een bedrag van circa dertien miljoen euro de overstap naar Southampton, waar hij zijn handtekening zette onder een verbintenis voor de duur van vier seizoenen.[5] Na de degradatie uit de Premier League aan het einde van het seizoen 2022/23 werd Perraud verhuurd aan zijn oude club OGC Nice.[6] Na zijn verhuurperiode vertrok hij definitief bij Southampton; Real Betis nam de verdediger over voor circa drieënhalf miljoen euro en schotelde hem een vijfjarige verbintenis voor.[7]