Cet outil permet d'identifier facilement si une chaîne de caractères "matche" un modèle, par exemple la chaîne "nico@mail.com" est-elle une adresse mail correctement formatée ou non.
Cet outil peut être utilisé dans de nombreuses situations : reconnaitre si un formulaire est bien rempli, récupérer des sous-chaînes dans une longue chaîne, remplacer certaines sous-chaines par d'autres...

L'utilisation la plus classique, vérifier le formatage d'un champ. le caractère '^' décrit le début de ligne et le caractère '$' la fin de ligne.
Regardons le code suivant : if($line =~ /^abcd/)...
Ce code teste si oui ou non la chaine $line commence (à cause du '^') par la chaine 'abcd'.
Par conter le code suivant : if($line =~ /abcd$/)... testerait si $line se termine (à cause du '$') par la chaine 'abcd' :

Voyons comment récupérer dans une chaîne l'ensemble des sous-chaînes matchant avec un modèle (ou pattern) :
if($maChaine =~ /'([0-9]+)'/)){ #on cherche les sous chaines composées de plusieurs (+) caractères numériques entre simple quote (')
$monPremierMot = $1; #Récupération du mot 1
$monSecondMot = $2;} #Récupération du mot 2

Pour remplacer dans une chaine une sous-chaine par une autre, on procède ainsi :
la lettre 's' au début de l'expression régulière signifie "single line", donc sur une seule ligne.
Si on a plusieurs lignes, il faut mettre 'm' pour multiple.
Enfin, en fin d'expression régulière, si on met 'g', le traitement de remplacement sera récursif, si on ne met rien, il n'interviendra que sur la première sous-chaine.

$line = "AA-aaa-BB-bbb-C-C-ccc-DD";
$line =~ s/C/xx/;
$line vaut alors AA-aaa-BB-bbb-xx-C-ccc-DD

Si l'on veut remplacer toutes les sous-chaînes: $line = "AA-aaa-BB-bbb-C-C-ccc-DD";
$line =~ s/C/xx/g;
$line vaut alors AA-aaa-BB-bbb-xx-xx-ccc-DD

Tester la présence d'une sous-chaine de optionnelle :
if($maChaine =~ /(abcd)?efgh/)) #les chaines composées de "abcd" (soit 0 soit 1 fois) puis de "efgh" satisfont la condition