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 :

paramètres de la ligne de commande disparaissent...


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 22
    Points : 15
    Points
    15
    Par défaut paramètres de la ligne de commande disparaissent...
    Salut à tous,

    Le titre peut parraitre bizarre, mais c'est bien ce qui se passe !
    Je m'explique: sous Win en ligne de commande, si je tape:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl MonProg.pl param1 param2 param3
    je récupère dirrectement mes paramètres avec la bête fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       foreach $param (@ARGV) {
          print "$param\n";
       }
    normal non?
    Par contre, qd je tape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonProg.pl param1 param2 param3
    Je n'ai plus aucun paramètre....

    Mais où sont-ils passé?
    J'ai pu observer ce comportement sur tous les scripts perl que j'ai écris, mais je n'ai trouvé aucune référence à ce problème et donc comment le résoudre

  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,

    Ton problème, c'est effectivement très intrigant !

    Sur quelle plate-forme travailles-tu ?

    J'ai testé un script faisant ton traitement, invoqué des deux manières que tu indiques, et sous Active-Perl 5.8, en Windows XP, je n'ai pas rencontré ce problème

    Peux-tu, éventuellement, nous montrer intégralement un script minimal produisant ton bug ? Voici le mien, qui se comporte comme attendu chez moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/usr/bin/perl
     
    use warnings;
    use strict;
     
    foreach my $param (@ARGV) {
    print "$param\n";
    }
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    J'ai essayé le code que tu proposes, mais c'est le même résultat: aucune erreur, mais il ne me print rien non plus.

    Je suis en WinXP Pro; Activeperl 5.8... tout comme toi avec installation standard.

  4. #4
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Salut !

    Comment exécutes-tu ton code ?
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

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

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    En fait comme je l'ai mis dans mon premier post, là par exemple, le script ci-dessus je l'ai appelé test.pl

    et en mode CLI j'ai tapé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Y:\Mes_Documents>test.pl 1 2 3 4
     
    Y:\Mes_Documents>
    et comme tu peux le voir (copie de la fenêtre dos) je n'ai aucune réponse
    mais si par contre, le le fait précéder de PERL comme dans l'exemple ci-dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Y:\Mes_Documents>perl test.pl 1 2 3 4
    1
    2
    3
    4
     
    Y:\Mes_Documents>
    j'ai bien mes paramètres... franchement je suis très perplexe

  6. #6
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Le problème vient sans doute de la ligne shebang de ton script. Dans le code de 2Eurocents, la ligne shebang correspond à sa première ligne soit : .
    Sous Win, cette ligne n'est pas obligatoire mais il est préférable de l'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #!C:\Chemin_de_ton_exécutable_perl
    .
    Avec ça, ça devrait être un peu plus correct.

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

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

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    Ca y est j'ai la solution. Un collègue m'a montré, il s'agit en fait d'un problème de configuration windows

    Dans les propriété d'ouverture de fichier d'extention .PL, dans le champs application, j'avais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\Perl\bin\perl.exe" "%1"
    et en fait il faut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\Perl\bin\perl.exe" "%1" %*
    Merci à vous

  8. #8
    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 GLDavid
    Le problème vient sans doute de la ligne shebang de ton script. Dans le code de 2Eurocents, la ligne shebang correspond à sa première ligne soit : .
    Sous Win, cette ligne n'est pas obligatoire mais il est préférable de l'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #!C:\Chemin_de_ton_exécutable_perl
    .
    Avec ça, ça devrait être un peu plus correct.

    @++
    Sans vouloir démarrer une querelle de pinailleurs, pour la portabilité du script, il vaut mieux y conserver un shebang à-la unix, même sous Windows.

    En effet, sous windows le chemin de l'interpréteur est obtenu par l'association de fichiers (l'extension .pl est associée à perl), son chemin est donc déjà connu et seules les options éventuelles ajoutées après sont utiles.


    Par contre, Antoine_1977, je suis curieux de savoir à quel endroit, sous Windows XP, ceci est configuré ... je n'ai rien de tel Mes .pl sont associés à une "Command Line Perl Interpreter", et ont une icône en fome de salamandre stylisée ...
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  9. #9
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Arff ! Ca se voit que je ne code que sous Linux
    J'arriverais à te convertir mon fillot, j'arriverais !!! :pingoin: :pingoin:
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

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

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    Pour répondre à ta question, tu y accèdes par l'explorateur Windows (je ne sais pas si il y a un autre endroit),
    outils > option des dossiers... > Types de fichiers
    et là tu as la liste des association executables / extentions

    Sous windows, le path vers l'exe perl ne sert à rien. Il semblerai que seul le Linux World puisse l'utiliser, par contre les options qui suivent fonctionnent comme attendu.

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

Discussions similaires

  1. Passage de paramètres depuis une ligne de commande DOS
    Par vince_lille dans le forum Sql*Plus
    Réponses: 4
    Dernier message: 21/10/2011, 16h07
  2. [Lazarus] Tests unitaires et paramètres de la ligne de commande
    Par thierrybo dans le forum Lazarus
    Réponses: 4
    Dernier message: 26/11/2009, 00h07
  3. Récupérer des paramètres de la ligne de commande
    Par Runs59 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/04/2008, 16h11
  4. passer paramètre à php en ligne de commande
    Par beyo dans le forum Langage
    Réponses: 2
    Dernier message: 11/04/2008, 00h08
  5. [ANT] Passage de paramètre via la ligne de commande.
    Par BarBiTueRie dans le forum ANT
    Réponses: 2
    Dernier message: 18/07/2007, 10h28

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