Perl : Comparaison chaine

[Résolu/Fermé]
Signaler
Messages postés
12
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
15 novembre 2010
-
 lami20j -
Bonjour,

une question un peu bête :);

je veux faire un if avec une condition ($dest doit être différente de toute chaine qui commence par ETL.)

voila ce que j'avais, mais ca ne marche pas :

if ((/Size\s*=\s*(\d+)/) && ($dest ne "ETL.*"))

Merci d'avance

cordialement,

titexe

3 réponses

Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 123
Salut,

($dest ne "ETL.*")) ressemble à un like SQL, donc n'est pas compris par Perl, dans ce cas précis tu testes si $dest est différent de ETL.*, l'astérisque n'est pas interprétée comme joker.

On peut tester si une chaine commence par quelque chose :

if ($dest =~ m/^ETL\./)

et on peut faire la même chose en inversant le résultat avec !

if !($dest =~ m/^ETL\./)
Messages postés
12
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
15 novembre 2010

merci
Salut,

et on peut faire la même chose en inversant le résultat avec !

if !($dest =~ m/^ETL\./)


On peut aussi utiliser l'opérateur !~

if ($dest !~ m/^ETL\./) 


ou utiliser unless au lieu de if !(...)

unless ($dest =~ m/^ETL\./)