Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1121 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  Besoin d'aide en Programmation Perl

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Besoin d'aide en Programmation Perl

n°303015
vfqs
Posté le 06-02-2003 à 10:58:56  profilanswer
 

Est-il possible et coment fait on pour qu'un programme perl puisse récuperer en argument le résulat d'une commande ?
 
Ex: ls -l | grep txt
 
En gros je cherche à connaitre le port de communication entre deux programme et la mise en place possible en perl.  
 
Merci d'avance.


Message édité par vfqs le 06-02-2003 à 12:12:32
mood
Publicité
Posté le 06-02-2003 à 10:58:56  profilanswer
 

n°303051
Aricoh
gentil mais fo po pousser
Posté le 06-02-2003 à 11:54:53  profilanswer
 

vfqs a écrit :

Est-il possible et coment fait on pour qu'un programme perl puisse récuperer en argument le résulat d'une commande ?
 
Ex: ls -l | grep txt
 
En gros je cherche à connaitre le port de communication entre deux programme et la mise en place possible en perl.  
 
Merci d'avance.
 

Tu voudrais qu'un programme Perl récupère comme argument externe le résultat d'une commande ?
 
Et pourquoi pas plutôt lancer directement la commande au sein même de ton programme Perl ?
 
Exemple, récupèration du répertoire courant :
 

Code :
  1. $RepCourant = `pwd`;
  2. print "resultat de la commande pwd = $RepCourant";


 
En utilisant l'antiquote (accessible par la touche 7 du clavier), la sortie de la commande indiquée entre ` ` est directement dirigée vers ta variable, ici $RepCourant.
 
Si tu n'as pas besoin de récupérer ce que te renvoies la commande, tu peux utiliser system(ma_commande)
 
Et si tu veux que l'appel à la commande fasse quitter le programme Perl en cours de traitement, remplace system par exec


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
n°303076
western
AJMM
Posté le 06-02-2003 à 12:19:57  profilanswer
 

sinon, il y a aussi popen

n°303203
vfqs
Posté le 06-02-2003 à 15:15:39  profilanswer
 

Aricoh a écrit :

Tu voudrais qu'un programme Perl récupère comme argument externe le résultat d'une commande ?
 
Et pourquoi pas plutôt lancer directement la commande au sein même de ton programme Perl ?
 
Exemple, récupèration du répertoire courant :
 

Code :
  1. $RepCourant = `pwd`;
  2. print "resultat de la commande pwd = $RepCourant";


 
En utilisant l'antiquote (accessible par la touche 7 du clavier), la sortie de la commande indiquée entre ` ` est directement dirigée vers ta variable, ici $RepCourant.
 
Si tu n'as pas besoin de récupérer ce que te renvoies la commande, tu peux utiliser system(ma_commande)
 
Et si tu veux que l'appel à la commande fasse quitter le programme Perl en cours de traitement, remplace system par exec

C pas ce que je voulais. Sur ton exmple la commande est dans le programme perl. Moi ce que je voulais c comment envoyer un résultat de command au programme perl.  :sweat:  
 
En fait ca sera un MTA qui enverra un message sur l'entrée standard d'un programme perl ou autre. Et comme je ne connais que le perl, benh... :)
 

n°303205
Aricoh
gentil mais fo po pousser
Posté le 06-02-2003 à 15:22:39  profilanswer
 

vfqs a écrit :

C pas ce que je voulais. Sur ton exmple la commande est dans le programme perl. Moi ce que je voulais c comment envoyer un résultat de command au programme perl.  :sweat:  
 
En fait ca sera un MTA qui enverra un message sur l'entrée standard d'un programme perl ou autre. Et comme je ne connais que le perl, benh... :)


 
Ok ok  :)
 
Un programme Perl peut recevoir ses arguments dans un tableau appelé @ARGV
 
Exemple tout bête, lancer le programme Perl toto.pl ;) qui ne fait qu'afficher le 1er argument qu'on lui transmet au lancement :
 

Code :
  1. #root>perl -w toto.pl coucou


 
voilà comment cette ligne de cde est traitée dans le prog toto.pl :
 

Code :
  1. #!/usr/bin/perl
  2. print $ARGV[0];    # affiche le 1er argument reçu


 


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
n°303219
vfqs
Posté le 06-02-2003 à 15:36:27  profilanswer
 

J'ai deja teste procmail. Mais fait pas ce que je veux :(

n°303255
vfqs
Posté le 06-02-2003 à 15:56:10  profilanswer
 

Aricoh a écrit :


 
Ok ok  :)
 
Un programme Perl peut recevoir ses arguments dans un tableau appelé @ARGV
 
Exemple tout bête, lancer le programme Perl toto.pl ;) qui ne fait qu'afficher le 1er argument qu'on lui transmet au lancement :
 

Code :
  1. #root>perl -w toto.pl coucou


 
voilà comment cette ligne de cde est traitée dans le prog toto.pl :
 

Code :
  1. #!/usr/bin/perl
  2. print $ARGV[0];    # affiche le 1er argument reçu


 
 

Ca aussi deja testé. Tjrs pas ce que je veux. En tout cas grand merci de ton aide.
 
En fait un exemple tout simple: ls -l | grep txt
 
Comment ces deux command communiquent entre elles ?  
 
Losque je fait un test avec un pregramme perl sous NT en ligne de cmd, g le message suivant: "Le processus a tenté d'écrire sur un canal non-existant."


Message édité par vfqs le 06-02-2003 à 15:57:52
n°303268
western
AJMM
Posté le 06-02-2003 à 16:10:53  profilanswer
 

sous NT en ligne de cmd, g le message suivant: "Le processus a tenté d'écrire sur un canal non-existant." c'est qui est logique vu que '|' est le pipe de Unix, c'est-à-dire la sortie standard du premier processus est redirigé sur l'entrée standard du second

n°303284
vfqs
Posté le 06-02-2003 à 16:32:37  profilanswer
 

western a écrit :

sous NT en ligne de cmd, g le message suivant: "Le processus a tenté d'écrire sur un canal non-existant." c'est qui est logique vu que '|' est le pipe de Unix, c'est-à-dire la sortie standard du premier processus est redirigé sur l'entrée standard du second  

Euh... ca marche sous nt, je l'utilsie notament avec mes requête ldapsearch avec find.

n°303326
vfqs
Posté le 06-02-2003 à 17:27:32  profilanswer
 

Personne n'a une idée ?? :sweat:  G mal au crane de chercher... :cry:  Commence a  :pt1cable:  
 
Peut être pas faisable après tout.  :heink:

mood
Publicité
Posté le 06-02-2003 à 17:27:32  profilanswer
 

n°303335
phoenix35
Posté le 06-02-2003 à 17:39:55  profilanswer
 

vfqs a écrit :

Personne n'a une idée ?? :sweat:  G mal au crane de chercher... :cry:  Commence a  :pt1cable:  
 
Peut être pas faisable après tout.  :heink:  


 
Tu fais ca via l'operateur diamant.
Je m'explique: quand tu fais X | Y, le programme Y se retrouve avec la sortie standard de X dans son entree standard, cad <> en perl.
 
Par exemple

Code :
  1. ls | perl -e 'print <>;'


 
si tu as plein de lignes

Code :
  1. while (<> ) {   # la ligne courante est dans $_
  2.    chomp;   # pour virer les fins de lignes
  3.    print "ma ligne est [$_]\n";
  4. }


 
Voila...

n°303369
vfqs
Posté le 06-02-2003 à 18:38:54  profilanswer
 

phoenix35 a écrit :


 
Tu fais ca via l'operateur diamant.
Je m'explique: quand tu fais X | Y, le programme Y se retrouve avec la sortie standard de X dans son entree standard, cad <> en perl.
 
Par exemple

Code :
  1. ls | perl -e 'print <>;'


 
si tu as plein de lignes

Code :
  1. while (<> ) {   # la ligne courante est dans $_
  2.    chomp;   # pour virer les fins de lignes
  3.    print "ma ligne est [$_]\n";
  4. }


 
Voila...
 

Merci un collègue m'a aidé et on a trouver presque pareil.  :) (En tout cas bravo) :)
Voici:
 

Code :
  1. while ($toto = <> ) {
  2.        print $toto;
  3.        $i++;
  4.        }
  5. print $i;


Message édité par vfqs le 06-02-2003 à 18:52:49
n°303372
vfqs
Posté le 06-02-2003 à 18:49:49  profilanswer
 

Me suis gourré.  :sweat:  
 
C plutot c qui suit qui marche plus:
 

Code :
  1. while ($toto = <> ) {
  2. $i = $i.$toto;
  3. }
  4. print $i;


Message édité par vfqs le 06-02-2003 à 18:50:20

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  Besoin d'aide en Programmation Perl

 

Sujets relatifs
Besoin de quelques codes Html rapides !!Petit soucis en java / perl ...
[PROBLEME] Besoin d'aide pour un petit programme basic[Perl] Comment ignorer la casse dans une comparaison ?
Une question de newbie en programmation...Programme en perl !
[ C ] Besoin d aide Svp[JAVA] programmation d'un bot de moteur de recherche
Plus de sujets relatifs à : Besoin d'aide en Programmation Perl


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR