Les opérateurs de liaison (=~ et !=)

Les opérateurs de translation, de substitution et d'appariement opèrent sur la variable $_. Il est possible de lier une autre variable que $_ aux opérateurs de translation, de substitution et d'appariement à l'aide des opérateurs de liaison. Les opérateurs de liaison existent sous 2 formes : la régulière =~ et la complémentaire !~.

Voici un script illustrant l'usage de ces opérateurs :

$scalaire = "Ils ne sont pas dans leur assiette.";
$appar = $scalaire =~ m/Ils/;
$subst = $scalaire =~ s/Ils/Elles/;
$transl = $scalaire =~ tr/s/z/;

print ("\$scalaire = $scalaire\n");
print ("\$appar = $appar\n");
print ("\$subst = $subst\n");
print ("\$transl = $transl\n");

print ("Il y a \"danz\" dans \"$scalaire\" \n") if $scalaire =~ m/danz/;
print ("Il n\'y a pas \"dans\" dans \"$scalaire\" \n") if $scalaire !~ m/dans/;

Les PATTERNS

Les PATTERNS sont des chaînes de caractères contenant des méta-caractères. Les méta-caractères sont des symboles qui regroupent un ensemble définis de caractères. On parlera aussi de méta-parenthèses et de méta-séquences.

Ci-dessous, se trouve mentionnée une liste de méta-caractères, de méta-paranthèses et de méta-séquences (attention cette liste n'est pas exhaustive).

Méta-caractère
 

Méta-caractère 

Description 

^ Ce méta-caractère apparie le début d'une chaîne de caractères, ou d'une ligne 
si l'option \m est utilisée.
$ Ce méta-caractère apparie la fin d'une chaîne de caractères, ou d'une ligne si 
l'optin \m est utilisée.
. Ce méta-caractère apparie n'importe quel caractère à moins que l'option \s soit
utilisée. 
Ce méta-caractère, appelé alternative, permet un appariement si une sur deux 
alternatives ou moins est réalisée.

Par exemple m/"a"|"bl"/ sera correct si $_ contient "a" ou "bl". 

* Ce méta-caractère indique que la séquence de caractères à gauche doit être 
appariée zéro ou plusieurs fois.
? Ce méta-caractère indique que la séquence de caractères à gauche doit être 
appariée une ou 0 fois.
+ Ce méta-caractère indique que la séquence de caractères à gauche doit être 
appariée une fois au moins.
 
Méta-parenthèse
 

Méta-parenthèse 

Description 

[] Ces parenthèses permettent de déterminer une classe de caractères. 

Par exemple m/[a-z]/ sera correct si $_ contient une lettre minuscule. 

{m,n} Ces parenthèses indiquent le nombre de fois que ce qui se trouve à gauche 
devrait être apparié. 

{n}indique que l'appariement doit être effectué exactement n fois pour que 
l'expression régulière soit correcte.

{n,} indique que l'appariement doit être effectué au moins n fois.

{n,m} indique que l'appariement doit être effectué entre n et m fois. 

 
Méta-séquence
 
 

Méta-séquence 

Description 

\ Ce caractère rend littérale l'interprétation du caractère suivant. 
\a Alarme.
\A  Le début d'une chaîne de caractère. 
\d Equivaut à [0-9].
\D Equivaut à tout les caractères à l'exception de [0-9].
\cn  Tout caractère de contrôle. 
\L Change tout les caractères suivants en minuscules jusqu'au caractère \E. 
\U  Change tout les caractères suivants en majuscules jusqu'au caractère \E.
\Q Rend littérale l'interprétation de tout les caractères suivants jusqu'au caractère \E.
\s Equivaut à [\t \n].
\t Une tabulation horizontale.
\v Une tabulation verticale. 
\w  Apparie un caractère alphanumérique ou _ ce qui équivaut à [a..zA..Z0..9].
\W Apparie tout les caractères à l'exception des caractères alphanumériques.
\xnn Tout nombre hexadécimal.

Exemples d'utilisation :

$_ = 'c:/rep/sous_rep/fich.txt';
m/.*/;
print $&;

Notons l'utilisation du caractère spécial $&.



 

$_ = "AAdA GHGHG BBB";
m/\w/;
print $&;



 

$_ = "AAdA GHGHG BBB";
m/\w+/;
print $&;


suite-index