Perl : Comparaison chaine

Résolu
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

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    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\./)
    1. 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\./)