Comment Ca Marche - Communauté informatique  
   
Accueil - Encyclopédie informatiqueTélécharger l'encyclopédieContribuer à cet article

Perl - Entrée et sortie standards

Entrée standard et sortie standard avec Perl Encyclopédie


Qu'appelle-t-on entrée standard et sortie standard ?

Perl permet d'écrire sur la sortie standard, appelée STDOUT et de lire sur l'entrée standard (STDIN). Il s'agit de deux descripteurs fournis par le système d'exploitation et permettant généralement de lire l'entrée du clavier et d'envoyer des données à l'écran, mais cela est déterminé par le système d'exploitation. En effet, Perl est issu des systèmes UNIX, sur lesquels les entrées-sorties sont considérés comme des fichiers.

De cette façon, sur un serveur Web permettant d'utiliser des scripts CGI, l'entrée standard représente la requête HTTP, et la sortie standard la réponse HTTP.

Lecture de l'entrée standard

Les données arrivant sur l'entrée standard (définie par le système d'exploitation) sont disponibles sous l'environnement Perl par le descripteur <STDIN>. De cette façon, il est possible de récupérer ligne par ligne le contenu de ce descripteur à l'aide d'une variable prévue à cet effet et de l'opérateur d'affectation :

Ainsi pour récupérer une ligne de l'entrée standard il est possible d'utiliser une instruction de la sorte :

$var = <STDIN>
Il est aussi possible d'utiliser une variable tableau dans laquelle on va concaténer chacune des lignes :
@var = <STDIN>

De cette façon, grâce à une boucle, on peut arriver à récupérer l'ensemble des lignes de l'entrée standard. Lorsqu'il n'y a plus aucune ligne disponible dans l'entrée standard, celle-ci retourne la valeur undef, qui signifie qu'aucune valeur n'est définie, ainsi la boucle se termine. Voici un exemple de boucle :

while ($var = <STDIN>) {
// instructions
}

Ecriture sur la sortie standard

Pour écrire sur la sortie standard il suffit d'utiliser la fonction print() et de lui passer en arguments les chaînes de caractères à envoyer sur le "périphérique" de sortie.
Par exemple :

$var = 'bonjour';

print ($var.' le monde');
Ces instructions ont pour effet d'envoyer la chaîne de caractères "bonjour le monde" sur la sortie standard. Ici l'opérateur de concaténation (".") a été utiliser pour joindre les deux chaînes. Il est également possible d'utiliser les guillemets doubles pour que la variable $var soit interpolée, c'est-à-dire remplacée par son contenu :
$var = 'bonjour';

print ("$var le monde");

Cette fonction peut aussi être utilisée selon une syntaxe radicalement différente, faisant mieux apparaître le rôle de la sortie standard (STDOUT) :

$var = 'bonjour';

print STDOUT $var;

En réalité étant donné que STDOUT est la sortie "standard", c'est-à-dire par défaut, la manière la plus simple d'écrire ce code est :

$var = 'bonjour';

print $var;

Il est aussi possible d'utiliser la fonction printf() issue du langage C pour envoyer des informations à la sortie standard.

La sortie standard d'erreur

Perl fournit un troisième descripteur standard permettant d'envoyer autonatiquement les erreurs vers une sortie définie par l'administrateur du système. Ce descripteur se nomme STDERR. Il suffit, lors d'écriture de script, de rediriger les messages d'erreurs vers ce descripteur...

Discussions pertinentes trouvées dans le forum

13/01 12h17 komen tableau fichier perl Komen faire un tableau d'un fichier en Perl? Développement 26/01 22h51->karinn22
06/05 14h45 perl lire contenu fichier .xls [PERL] lire contenu fichier .xls Développement 25/05 10h23->kij_8221
27/11 20h29 extraire contenu fichier perl extraire le contenu d'un fichier avec perl Développement 28/11 14h14->lami20j20
13/04 12h16 perl access db pERL -> access DB Développement 26/04 09h36->kij_8212
10/11 14h31 perl saut ligne [PERL]Saut de ligne Développement 19/02 22h58->lami20j12
18/11 21h03 perl fonction grep [PERL]pb avec la fonction grep Développement 19/11 21h12->Johann11
05/05 13h55 installer module perl tk installer le module perl/TK Linux/Unix 06/05 13h44->hakim9
11/02 17h45 perl unitialized value open ha [Perl] "Unitialized value" avec Open (HA Développement 11/02 21h14->lami20j9
22/05 15h15 perl afficher endroit page [PERL]-Afficher au même endroit sur la page Linux/Unix 23/05 15h48->lami20j9
10/11 10h18 perl récupération chaîne caractère [PERL]Récupération chaîne caractère... Développement 28/02 07h22->lami20j8
Discussion fermée Problème résolu Perl STDOUT STDIN Plus de discussions sur « Perl STDOUT STDIN »

Ce document intitulé « Perl - Entrée et sortie standards » issu de l'encyclopédie informatique Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.