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 :

Passer une fonction en argument


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
    Septembre 2012
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 52
    Par défaut Passer une fonction en argument
    Salut,

    Je continue d'apprendre doucement en Perl, aujourd'hui j'aimerai savoir comment passer une fonction en argument d'un script Perl.

    En gros voici la ligne de commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    # perl script.pl nom_fonction
    Avec cette commande, le script Perl se lance et doit exécuter la fonction dont le nom est en argument.

    Je sais comment récupérer la chaine "nom_fonction" mais pas comment lancer la fonction associée.

    Pouvez-vous m'aider?

    Si possible, j'aimerai ne pas passer par un "if" du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ( $arg == "nom_fonction"){
        nom_fonction();
    }
    Ceci pour la simple et bonne raison que je risque d'avoir pas mal de fonctions...

    Merci

  2. #2
    Membre émérite Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Par défaut
    jette donc un coup d'oeil à la fonction eval dans un premier temps, mais il y a mieux, je cherche quelques références en attendant les experts...

    EDIT: voilà un exemple

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 52
    Par défaut
    Je sais pas si c'est moi mais j'ai pas tout compris aux 2 liens.

    La fonction eval n'appelle pas une autre fonction? si?

    Pareil pour l'exemple, j'ai pas tout compris, il vérifie une condition avant d'appeler une méthode, c'est ça?

  4. #4
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Je trouve qu'il n'est absolument pas judicieux de vouloir faire ce que tu souhaites.

    La meilleure façon de procéder est que ton programme lance une fonction en fonction d'un argument qui ne soit pas le nom de ta fonction.

    Exemple : perl prog.pl -start

    Qui lance la fonction commancer_calcul()

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 52
    Par défaut
    Il est fort probable que ce ne soit pas judicieux mais je débute alors des erreurs j'en ferai encore plein.

    Seulement j'ai un cahier des charges qui me dit en gros:
    - écrire un script perl avec des fonctions de calcul à l'intérieur
    - la fonction à utiliser sera appelée en argument de ce script

    Donc je vois pas comment passer outre.

  6. #6
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Ton cahier de charge te dit de faire ce que toi tu ne souhaites pas faire, c'est-à-dire des if !

    C'est bien de vouloir écrire du code avec le moins de lignes possible, mais à un moment donné, il faut tout de même écrire des lignes et des conditions !

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

Discussions similaires

  1. [JavaScript] [FAQ] Appeler dynamiquement une fonction et passer une fonction en argument
    Par SpaceFrog dans le forum Contribuez
    Réponses: 0
    Dernier message: 28/05/2008, 14h48
  2. Réponses: 11
    Dernier message: 04/10/2007, 17h18
  3. passer une fonction en argument, c'est possible ?
    Par kamouminator dans le forum C
    Réponses: 4
    Dernier message: 10/11/2006, 21h13
  4. Comment passer une fonction en argument
    Par Pades75 dans le forum Langage
    Réponses: 4
    Dernier message: 16/02/2006, 10h34
  5. Passer une fonction comme argument à une fonction
    Par Cocotier974 dans le forum Général Python
    Réponses: 4
    Dernier message: 29/06/2004, 13h41

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