Perl : Comparaison chaine

Résolu/Fermé
titexe2009 Messages postés 12 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 15 novembre 2010 - 11 déc. 2009 à 15:38
 lami20j - 11 déc. 2009 à 20:06
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
A voir également:

3 réponses

blux Messages postés 26545 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 22 décembre 2024 3 318
11 déc. 2009 à 15:59
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\./)
0
titexe2009 Messages postés 12 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 15 novembre 2010
11 déc. 2009 à 17:02
merci
0
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\./) 
0