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 :

[PERL] faire une condition plus compacte


Sujet :

Langage Perl

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut [PERL] faire une condition plus compacte
    Bonjour à tous,

    J'ai le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    $C=$cgi->param("C");
    $A=$cgi->param("A");
    $P=$cgi->param("P");
    $O=$cgi->param("O");
    $S=$cgi->param("S");
    $G=$cgi->param("G");
    $OU1=$cgi->param("OU1");
    $OU2=$cgi->param("OU2");
    $OU3=$cgi->param("OU3");
    $OU4=$cgi->param("OU4");
    $FREEFORM=$cgi->param("FREEFORM");
     
    if($C eq '' && $A eq '' && ....... && $OU4 eq ''
    {
         print "addresse inexistante";
    }
     
    else
    {
        print "addresse";
    }
    Comment changer ma condition if() par quelque chose de plus compacte ???

    Merci pour vos réponses.

  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: [PERL] faire une condition plus compacte
    Il y a plus d'une façon de le faire


    Plus lisible (et logique quant à la priorité des opérateurs) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (($C eq '') and ($A eq '') and ....... and ($OU4 eq ''))
    Plus compact, simplement par concaténation de toutes les chaînes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($C.$A. ......... .$OU4 eq '')
    Plus tableau/Reg-Exp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @tab = ($C, $A, ............ , $OU4);
    if (not grep { $_ != /^$/ }, @tab)
    Plus logique, si $cgi->param venait à répondre "undef" si le paramètre n'était pas utilisé (je ne sais pas ce que retourne ->param, alors je conjecture ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (not (defined ($C) and defined($A) and ....... and defined($OU4)))

    Et il y a encore d'autres possibilités.

    La compacité n'est pas nécessairement un critère valide. La logique de ton test est prépondérante ... Et l'usage de conditions intermédiaires peut aider, dans ce domaine ...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut
    Merci beaucoup pour ce petit cours très interessant, je m'en inspirerait pour les prochains cas.
    Merci encore

    Guillaume.

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    tag resolu si c'est OK

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut
    oups oui, désolé

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 06/04/2007, 13h36
  2. [Debutant] Faire une application plus joli
    Par Xhéras dans le forum MFC
    Réponses: 4
    Dernier message: 29/09/2006, 17h23
  3. faire une condition pour arrêter une macro
    Par db48752b dans le forum Access
    Réponses: 11
    Dernier message: 21/09/2006, 20h21
  4. Faire une liste plus jolie de ma liste:lecture de base mysql
    Par CyberTwister dans le forum Requêtes
    Réponses: 8
    Dernier message: 16/02/2006, 23h31
  5. néophyte, faire une requête plus courte
    Par LE NEINDRE dans le forum Requêtes
    Réponses: 8
    Dernier message: 10/10/2005, 09h44

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