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 :

Débutant de chez débutant


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 27
    Points : 16
    Points
    16
    Par défaut Débutant de chez débutant
    Bonjour,
    Question de base : pourquoi le code suivant me renvoit toujours : WARNING! &max should get exactly two arguments! quelque soit le nombre d'éléments de @rocks?
    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    @rocks  = qw/ bedrock slate /;
    &max;
     
    sub max {
          if (@_ != 2) {
            print "WARNING! &max should get exactly two arguments!\n";
            }
          else { 
          print "YES!!!2 elements!\n";
          }
        }

  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
    Bonjour,

    Citation Envoyé par nico93100
    Question de base : pourquoi le code suivant me renvoit toujours : WARNING! &max should get exactly two arguments! quelque soit le nombre d'éléments de @rocks?
    Parce que Perl n'est pas encore capable de deviner que c'est @rocks que vous tentez de passer en paramètre à &max.

    Il faut lui en dire un peu plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @rocks  = qw/ bedrock slate /;
    &max (@rocks);
    ...

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 587
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 587
    Points : 2 036
    Points
    2 036
    Par défaut
    Bonjour,

    c'est tout à fait normal

    @rocks reçoit tes 2 éléments, OK.

    Mais ta fonction bosse avec @_, lequel ne contient rien actuellement. Et vu que lorsque tu appelle ta fonction, tu ne lui donne aucun paramètre...

    Là, ce devrait aller mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @rocks  = qw(bedrock slate);
    max(@rocks);
     
    sub max {
          if (@_ != 2) {
            print "WARNING! \&max should get exactly two arguments!\n";
          } else { 
            print "YES!!!2 elements!\n";
          }
    }

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 587
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 587
    Points : 2 036
    Points
    2 036
    Par défaut
    grilled by 2eurocents


  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    C'était donc bien une question con ! !

  6. #6
    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 nico93100
    C'était donc bien une question con !!
    Non, non, il n'y a pas de "question con" ... seule la réponse lui donne cette apparence.

  7. #7
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Soit dit en passant, il est maintenant déconseiller de préfixer le nom d'une sous-routine avec une éperluette lors de l'appel. Utiliser max(@rocks) plutôt que &max(@rocks).

Discussions similaires

  1. [Nardjesse] Débutante de chez débutante!
    Par Nardjesse dans le forum Présentations
    Réponses: 1
    Dernier message: 26/11/2011, 13h36
  2. Réponses: 14
    Dernier message: 18/01/2009, 19h57
  3. [Débutant] Problèmes de débutant et de beans
    Par dingoth dans le forum JSF
    Réponses: 1
    Dernier message: 28/11/2006, 15h27
  4. [Triggers] Débutant de chez Débutant
    Par stailer dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 21/05/2005, 18h52

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