suivant: L'ouverture
monter: Les entrées-sorties
précédent: Les bases
  Index
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>);
suivant: L'ouverture
monter: Les entrées-sorties
précédent: Les bases
  Index
Olivier Aubert
1999-06-01
|