Voilà une dernière fonction qui est généralement associée aux
expressions régulières, même si elle ne les utilise pas. Son
point commun avec les fonctions précédentes est qu'il faut
utiliser =~
pour préciser à quelle variable elle s'applique ($_
par défaut).
Elle a le même comportement que l'utilitaire UNIX tr. Sa syntaxe est la suivante :
$variable =~ tr/liste1/liste2/cds;Par défaut, elle transpose chaque caractère de liste1 en le caractère correspondant de liste2. Trois modificateurs sont disponibles :
c | complémente la liste liste1 |
d | supprime les éléments de liste1 qui n'ont |
pas de correspondance dans liste2 | |
s | compresse les caractères dupliqués qui sont en double |
Pour supprimer par exemple tous les caractères non alphanumériques, on écrit :
$chaine =~ tr/a-zA-Z0-9.´//cd;