next up previous index
suivant: L'ouverture monter: Les entrées-sorties précédent: Les bases   Index

Interaction

Voila un programme d'exemple qui demande d'entrer un nom et met le résultat de cette demande dans une variable :

print "Entrez votre nom : ";

$nom = <STDIN>;
chomp($nom);

print "Hello $nom#1218#>n";
La partie intéressante se situe au niveau des lignes 2 et 3. La ligne 2 affecte à la variable $nom le résultat de l'opérateur <> appliqué au descripteur de fichier STDIN.

L'opérateur de fichier <> est utilisé pour lire une ou plusieurs lignes d'un fichier. Dans un contexte scalaire comme ici, il lira les données jusqu'au prochain retour-chariot, qui sera d'ailleurs inclus dans le résultat.

Dans un contexte de tableau par contre, par exemple @lignes = <STDIN>, l'opérateur renvoie l'ensemble des lignes du fichier dans un tableau, ce qui peut produire des résultats indésirables, si par exemple on applique cette ligne à un fichier de plusieurs mégaoctets. Mais cette forme reste très utile pour lire rapidement en mémoire le contenu entier d'un fichier.

La fonction chomp4.1 que l'on applique ensuite à la variable supprime le dernier caractère si c'est un newline. On peut d'ailleurs l'appliquer également à un tableau. Dans ce cas, elle enlèvera les newline à chaque élément du tableau.

On peut condenser ces deux lignes sous la forme

chomp($nom = <STDIN>);

next up previous index
suivant: L'ouverture monter: Les entrées-sorties précédent: Les bases   Index
Olivier Aubert
1999-06-01