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] Passage de parametre lors de l execution


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 8
    Points : 7
    Points
    7
    Par défaut [langage] Passage de parametre lors de l execution
    Salut,

    Je voudrais automatiser l execution de programmes perl par la commande do, par exemple:

    do "mon_prog1.pl";
    do "mon_prog2.pl";
    do "mon_prog3.pl";

    Chacun de ces programmes necessite cependant un argument en entree, cad qu il faut taper par exemple "0" puis ENTREE.

    J aimerai avoir quelquechose du type:

    do "mon_prog1.pl" argument1;
    do "mon_prog2.pl" argument2;

    or cela ne marche pas.

    Est ce possible ou alors y a t il une autre solution plus simple?

    Merci pour votre aide.

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    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 572
    Points : 2 014
    Points
    2 014
    Par défaut
    Je ne connais pas la commande do (Unix ???)

    Tout ce que je sais, c'est que si tu veux gérer des paramètres externes dans un script Perl, tu peux passer les arguments au programme via la liste @ARGV.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    # le script (début) :
    my ($Argument1, $Argument2, $Argument3) = @ARGV;
    ... ...
     
    # exécution du script
    Mon_script.pl Arg1 Arg2 Arg3
    Tu devrais donc pouvoir exécuter tes scripts en leur envoyant tes paramètres.

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Merci,

    C etait bien la commande recherchée.

    Cela fonctionne donc bien quand je tape:

    Perl programme.pl 1

    Cependant mon but étant de lancer des scripts Perl à partir d un autre programme Perl, j ai utilisé la commande do sous windows (do filename : executes the contents of filename as a perl script. Returns undef if it cannot read the file. )

    J ai alors dans un autre programme qqch comme

    Do "programme.pl 1";

    Mais cela ne marche pas car programme.pl est exécuté mais il n est pas tenu compte de l'argument qui suit.

    Par contre, si je créé un fichier *.bat en ecrivant dedans
    perl programme.pl 1

    et que je l execute, cela fonctionne correctement.

    Comment faire pour avoir cet argument pris en compte?

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    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 572
    Points : 2 014
    Points
    2 014
    Par défaut
    J'ai lu vite fait mais si j'ai bien compris, tu as un programme Perl devant fonctionner sous système Win32 et qui doit lancer plusieurs autres scripts perl.

    Dans ce cas, je procèderais comme suit avec ton script principal :
    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
     
    eval {
        system("Perl.exe MonScript1.pl Arg1 Arg2");
    };
    warn ("pb de traitement de MonScript1.pl : $@\n") if ($@);
     
    eval {
        system("Perl.exe MonScript2.pl Arg1 Arg2");
    };
    warn ("pb de traitement de MonScript2.pl : $@\n") if ($@);
     
    eval {
        system("Perl.exe MonScript3.pl Arg1 Arg2");
    };
    warn ("pb de traitement de MonScript3.pl : $@\n") if ($@);
    Maintenant, si tes scripts perl annexes pouvaient être transformés en package, ça serait mieux je pense.

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Tres bien, c est exactement ce que je voulais faire.

    Merci pour ton aide.

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

Discussions similaires

  1. executer un fichier perl avec passage de parametre
    Par mpolodesm dans le forum Langage
    Réponses: 3
    Dernier message: 09/11/2005, 14h14
  2. [VB]Passage de paramètres à un exécutable
    Par david71 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 27/09/2005, 10h46
  3. Réponses: 34
    Dernier message: 25/03/2005, 22h59
  4. [langage] Passage de paramètres dans une fonction
    Par And_the_problem_is dans le forum Langage
    Réponses: 11
    Dernier message: 28/06/2004, 08h20
  5. [langage] passage de paramètres à une fonction
    Par BARBIER dans le forum Langage
    Réponses: 4
    Dernier message: 07/05/2004, 15h46

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