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;