IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

[langage] comprendre une syntaxe particulière


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 20
    Points : 22
    Points
    22
    Par défaut [langage] comprendre une syntaxe particulière
    Salut,

    ce n'est jamais glorieux de l'avouer mais j'ai un peu de mal avec la syntaxe de cette ligne:
    my $reg = ( $a{Reg} ) ? $a{Reg} : $self->method;

    quelq'un pourrait il me dire ce que signifie le ? puis le :
    ou bien un lien vers une faq, j'ai pas trouvé...

    merci d'avance.

  2. #2
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut Re: comprendre une syntaxe particulière
    Citation Envoyé par mat21
    my $reg = ( $a{Reg} ) ? $a{Reg} : $self->method;
    quelq'un pourrait il me dire ce que signifie le ? puis le :
    C'est comme en C ( Perl est écrit en C - on choisit ses amis, mais rarement sa famille )

    $a = ( $condition ) ? $b : $c ;
    équivaut à :
    Si $condition est vraie, $a prend $b, sinon $a prend $c.

    C'est un raccourci commode mais peu lisible, qui évite des if avec les blocs d'accolades associés.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 20
    Points : 22
    Points
    22
    Par défaut
    ( Perl est écrit en C - on choisit ses amis, mais rarement sa famille Wink )
    oui je sais mais je ne connais pas C malheureusement.

    merci bien pour l'explication. c'est un raccourci que j'avais du mal a appréhender.

    donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if ($a{Reg}) {
    my $reg = $a{Reg};
    }
     
    else {
    my $reg = $self->method; 
    }
    bye

  4. #4
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Citation Envoyé par mat21
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ($a{Reg}) {
    my $reg = $a{Reg};
    }
    else {
    my $reg = $self->method; 
    }
    Surtout pas, malheureux !!!!!!!

    En procédant ainsi, tu déclares une nouvelle variable $reg dans les blocs de l'alternative, qui masque celle de l'extérieur ...
    Et ça ne fait pas ce que tu veux ...
    Et c'est une erreur vachement dure à trouver ...

    Ceci est mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if ($a{Reg}) {
      $reg = $a{Reg};
    } else {
      $reg = $self->method; 
    }
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 20
    Points : 22
    Points
    22
    Par défaut
    oui c vrai
    Je savais que j'allais me faire reprendre sur ce coup la lol

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    my  $reg;
    if ($a{Reg}) {
      $reg = $a{Reg};
    } else {
      $reg = $self->method;
    }
    comme ça c correct.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comprendre une syntaxe
    Par ascito dans le forum Langage
    Réponses: 2
    Dernier message: 01/02/2012, 22h39
  2. Aide pour comprendre la syntaxe d'une macro
    Par virtuadrack dans le forum C
    Réponses: 6
    Dernier message: 28/10/2009, 12h38
  3. [langage] [expression reguliere] : syntaxe
    Par arcane dans le forum Langage
    Réponses: 8
    Dernier message: 25/09/2003, 13h03
  4. [langage] surement une expression régulière...
    Par armada dans le forum Langage
    Réponses: 5
    Dernier message: 30/05/2003, 17h06
  5. langage] Découper une chaine suivant un délimiteur
    Par totox17 dans le forum Langage
    Réponses: 2
    Dernier message: 25/11/2002, 16h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo