[Perl] Recevoir les infos passees via un pipe
NaeiKinDus
-
blux Messages postés 27166 Date d'inscription Statut Modérateur Dernière intervention -
blux Messages postés 27166 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour a tous !
J'aurais aime savoir comment faire pour recuperer les informations transmises au script perl au moyen d'un pipe(je travaille sous unix).
Normalement, on recolte depuis l'entree standart, mais impossible de faire marcher ca !
Exemple de ligne de commande :
user: cat fichier | script.pl
Dans ce script, je dois recuperer les infos transmises par le cat, et les traiter !
Ca donnerait, en gros :
if (<STDIN>)
{
Instructions pour le cas ou le script est appele avec un pipe
}
else
{
Instructions pour le cas ou le script est appele directement
}
Probleme : avec ce code, le script semble attendre une ligne de commande sur l'entree standart... comment resoudre ca ?
Merci d'avance :)
J'aurais aime savoir comment faire pour recuperer les informations transmises au script perl au moyen d'un pipe(je travaille sous unix).
Normalement, on recolte depuis l'entree standart, mais impossible de faire marcher ca !
Exemple de ligne de commande :
user: cat fichier | script.pl
Dans ce script, je dois recuperer les infos transmises par le cat, et les traiter !
Ca donnerait, en gros :
if (<STDIN>)
{
Instructions pour le cas ou le script est appele avec un pipe
}
else
{
Instructions pour le cas ou le script est appele directement
}
Probleme : avec ce code, le script semble attendre une ligne de commande sur l'entree standart... comment resoudre ca ?
Merci d'avance :)
A voir également:
- [Perl] Recevoir les infos passees via un pipe
- Recevoir mms sans données mobiles free ✓ - Forum Free mobile
- Peut on recevoir les sms d'un contact bloqué ✓ - Forum iPhone
- Partager des photos via un lien - Guide
- Votre correspondant n'est pas autorisé à recevoir vos appels - Forum Mobile
- Via michelin carte - Télécharger - Transports & Cartes
4 réponses
Salut,
cat toto | test1.pl
Ca marche bien chez moi... (AIX 5.2)
#!/usr/bin/perl while (<>) { printf("%s\n",$_); }
cat toto | test1.pl
Ca marche bien chez moi... (AIX 5.2)
Salut,
Pourquoi ne pas ouvrir pour lecture ton fichier carrément dans le script PERL et faire le traitement sur son contenu ensuite. Ça me parrait moins compliqué à faire!
Pourquoi ne pas ouvrir pour lecture ton fichier carrément dans le script PERL et faire le traitement sur son contenu ensuite. Ça me parrait moins compliqué à faire!
L'exemple de blux en ligne de commande
perl -n -e 'printf "%s\n",$_' index.html
Re blux,
voilà ta version en ligne de commande avec |
En revanche si on veut transformer les caractères en majuscules et stocker le résultat dans un fichier on pourra écrire
voilà ta version en ligne de commande avec |
cat fichier.txt | perl -ne 'print'mais je ne vois pas la raison en ce cas ( cat fichier.txt ça suffit), c'est seulement pour montrer le passage avec |
En revanche si on veut transformer les caractères en majuscules et stocker le résultat dans un fichier on pourra écrire
cat fichier.txt | perl -ne 'print uc' > fichier_maj.txt