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 :

Réexécuter le script


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 12
    Par défaut Réexécuter le script
    Bonjour à tous,

    Voila j'aimeré savoir si il éxiste une fonction de perl perméttant de réexécuter le script quand une condition n'est pas réspécté. Un réexécution à une ligne considéré seré un + mais réexécuter tout le script me sufiras.

    En vous rémèrcient de vos prochaines réposes.

  2. #2
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 898
    Par défaut
    Bonjour et bienvenue à toi.

    Réexécuter tout un script dans un if ne me semble pas être une bonne solution. Peut-être devrais-tu songer à poser plutôt des fonctions récursives au sein de ton code ?
    Mais ne voyant pas ton code ni même son architecture, cela va être dur de te répondre.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 12
    Par défaut
    Voici le code :

    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
    #!/usr/bin/perl -w
     
    $im_thinking_of=int(rand 100);
    print "Pick a number:";
    $guess=<STDIN>;
    chomp $guess;   # Don't forget to remove the newline!
     
    if ($guess>$im_thinking_of) {
                  print "Ton choix est trop grand! \n";
                  $guess=<STDIN>;
     } elsif ($guess < $im_thinking_of) {
                  print "ton choix est trop petit ! \n";
                  $guess=<STDIN>;
     } else {
                 print "Ton choix est juste !\n";
    J'aimeré que le nombre choisi au hasard puisse rester en mémoire et pouvoir donc retenter ma chance a ce petit jeu jusqu'a trouver la répose ! Merci d'avance !

  4. #4
    Membre Expert
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Par défaut
    Moi je ferais un do... while.
    Tu commences la boucle au premier print et tu la fais jusqu'à la fin avec comme condition d'arrêt que les deux nombres soit égaux. Ca ressemblerait à ça :

    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
    #!/usr/bin/perl -w
     
    $im_thinking_of=int(rand 100);
    do
    {
       print "Pick a number:";
       $guess=<STDIN>;
       chomp $guess;   # Don't forget to remove the newline!
     
       if ($guess>$im_thinking_of) {
                     print "Ton choix est trop grand! \n";
        } elsif ($guess < $im_thinking_of) {
                     print "ton choix est trop petit ! \n";
        } else {
                    print "Ton choix est juste !\n";
       }
    }while ( $im_thinking_of != $guess);
    j'ai volontairement enlevé les $guess = <STDIN>. Ce qu'il va se passer c'est que le programme va réexécuter le bloc do while tant que l'utilisateur n'aura pas entré la bonne solution.

    Autre chose, je te conseille de déclarer tes variables avec my.

    Bonne prog

  5. #5
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 898
    Par défaut
    On peut aussi le voir dans un angle récursion

    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
    23
    24
    25
    26
    27
    28
     
    #!/usr/bin/perl -w
     
    use strict;
     
    sub guess($);
     
    sub guess($){
         my $to_find = $_[0];
         print "Pick a number:";
         my $guess=<STDIN>;
         chomp $guess;
         if ($guess>$to_find) {
                  print "Ton choix est trop grand! \n";
                  return guess($to_find);
         }
         elsif($guess < $to_find) {
                  print "ton choix est trop petit ! \n";
                  return guess($to_find);
         }
         else {
               print "Ton choix est juste !\n";
               return;
         }
     }
     
     my $im_thinking_of=int(rand 100);
     guess($im_thinking_of);
    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 12
    Par défaut
    Merci beaucoup pour vos réponses, voila un forum compétant

    A bientôt et encore merci

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

Discussions similaires

  1. Quel est le meilleur script PHP de portail (CMS) ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 187
    Dernier message: 18/10/2012, 08h45
  2. Script et XMLmodule
    Par Ph. B. dans le forum XMLRAD
    Réponses: 4
    Dernier message: 27/01/2003, 17h10
  3. quel langage choisir pour faire de script sous windows
    Par pas05 dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 18/11/2002, 23h42
  4. Réponses: 2
    Dernier message: 11/07/2002, 09h31

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