Perl : Comparaison chaine

Résolu
titexe2009 Messages postés 15 Statut Membre -  
 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
Configuration: Windows XP
Firefox 3.5.5

3 réponses

  1. blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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
  2. titexe2009 Messages postés 15 Statut Membre
     
    merci
    0
  3. lami20j
     
    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