[Perl] Recevoir les infos passees via un pipe
NaeiKinDus
-
blux Messages postés 2014 Date d'inscription Statut Modérateur Dernière intervention -
blux Messages postés 2014 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
- Via michelin carte - Télécharger - Transports & Cartes
- Infos - Guide
- Recevoir mms sans données mobiles free ✓ - Forum Free mobile
- Partager des photos via un lien - Guide
- Peut on recevoir les sms d'un contact bloqué ✓ - Forum iPhone
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)
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