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 :

Comment faire pour donner une réponse à un prog executé par Perl


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut Comment faire pour donner une réponse à un prog executé par Perl
    Bonjour tout le monde,

    J'ai un souci assez urgent, j'ai fait un script qui me permet d'annaliser un programme executé en ligne de commande.

    pour faire très simple, mon script perl contient cette ligne :

    'monExecutale.exe -option1 -option2';

    Seulement, cet executable requiere que l'on tappe sur la touche enter à la fin de son execution. Comment faire celà en Perl ??

    moi, j'en ai pas la moindre idée.....

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Soit tu manipules les entrées/sorties du programme avec des pipes (voir la doc de open() ) ou avec open2()/open3(), soit tu utilises carrément le module Expect qui a été écrit pour ça.

    --
    Jedaï

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Merci pour l'info, je suis assez nouveau dans le monde de perl. J'ai effectivement trouvé des infos avec open. voilà maintenant la forme de mon code :
    open SORTIE, "monExecutable |";
    while( my $ligne = <SORTIE> ) {
    # la ligne courante est stockée dans $ligne
    print $ligne;
    if ($ligne =~ /ENTER/) {
    # c'est ici que je doit envoyer le retour chariot
    }
    }
    close SORTIE;
    Le problème c'est que j'ai vraiement l'impression que rien ne se passe dans la boucle... ? des suggestions ? ai-je fait une erreur ?

    Sinon je ne connait pas le module Expect.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    S'il vous plait !!!! De l'aide ! Je m'en sort pas....

  5. #5
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par ElTorro
    Sinon je ne connait pas le module Expect.
    Et qu'est-ce qui t'empêche d'aller voir sa documentation exactement ?

    --
    Jedaï

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Navré de ne pas m'etre expliquer sur ce point.

    Je suis allé voir la doc de Expect, mais pour ainsi dire, je n'ai pas tout compris. Comme je le disais, je suis novice sur Perl, je ne sais pas comment installé ce pm et Tty.pm sur windows.
    Je pensais qu'il serait plus simple d'utiliser open, ou open2. Je me suis peut etre tromper.
    Je suis chez le client pendant encore deux heures, et je ne voudrait pas lui tomber son perl en faisant une mauvaise install.
    Suffit-il de copier les .pm dans lib pour les installer ?

    Et ou-est ce que je peut trouver une explication simple de Expect (sans rajouter à mon ignorance l'utilisation de TCP, telnet, ou autre...) ?

    Merci

  7. #7
    Membre éprouvé
    Avatar de _solo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    889
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 889
    Points : 1 228
    Points
    1 228
    Par défaut
    t'aurais pu aussi faire une recherche web et par la meme trouver des exemples
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    my $var = Expect->spawn("path de ton binaire")
        or die "Cannot spawn process $!\n";
    et au vue de ton post tu n'est pas aller voir la doc :: pas bien .

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Vous me prenez pour un Américain ?

    Je l'ai bien vu cette ligne de commande, mais tant que je n'arrive pas a installer ce module je suis dans les choux.
    De plus, cette ligne de commande permet de lancer le binaire que je veux OK, mais si c'était juste pour faire une execution je me prendrai pas la tête et j'utiliserai `` ou exec ou open...

  9. #9
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par ElTorro
    Je suis allé voir la doc de Expect, mais pour ainsi dire, je n'ai pas tout compris. Comme je le disais, je suis novice sur Perl, je ne sais pas comment installé ce pm et Tty.pm sur windows.
    Si tu es sous Windows, sauf si tu utilises Cygwin, tu peux oublier Expect, ça ne marche pas (c'est marqué dans la doc, soit dit en passant). Pour les explications sur l'installation de module, tu peux aller voir notre FAQ.

    Utilise donc open2 (module IPC::Open2, fait partie du CORE, tu n'as donc pas besoin de l'installer).

    --
    Jedaï

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Jedai
    Si tu es sous Windows, sauf si tu utilises Cygwin, tu peux oublier Expect, ça ne marche pas (c'est marqué dans la doc, soit dit en passant)
    Jedaï


    En fin une bonne nouvelle ! Merci de ton aide, je commencais à desesperer.

    Je me lance dans open2

Discussions similaires

  1. Comment faire pour récup une donnée d'une liste déroulante
    Par magic8392 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 03/03/2005, 15h00
  2. Comment faire pour afficher une image ds une dbgrid
    Par totomaze dans le forum Bases de données
    Réponses: 2
    Dernier message: 16/10/2004, 15h31
  3. Comment faire pour killer une application ?
    Par tintin22 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 17/08/2004, 18h16
  4. comment faire pour qu'une application soit toujours visible ?
    Par goldbar dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 28/03/2004, 14h35
  5. Réponses: 7
    Dernier message: 13/12/2003, 14h09

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