- Les accès aux fichiers s'effectuent
habituellement par l'intermédiaire de variables
particulières appelées filehandles,
en français descripteurs de fichiers.
- Perl dote chaque programme exécuté de
3 descripteurs prédéfinis, STDIN, STDOUT et
STDERR (reprise des canaux
standard d'Unix : entrée clavier, sortie écran,
sortie en erreur) qui sont immédiatement utilisables sans
déclaration, contrairement aux accès à
des fichiers réels.
- L'opérateur de lecture sur l'entrée
standard (le clavier) est noté <STDIN>,
souvent abrégé en <>
Un appel à cet opérateur lit la ligne saisie
jusqu'au prochain caractère "nouvelle ligne" (y
compris)
- L'instruction chomp $var permet de
retirer ce caractère \n de la chaine et
renvoie 1 s'il réussit
Ne pas la confondre avec chop $var qui retire le
dernier caractère quel qu'il soit et le renvoie.
- La sortie standard
sur l'écran, est noté <STDOUT>.
L'écriture, ici l'affichage écran, s'effectue
avec print, sous la syntaxe
générale : print STDOUT $texte;
qu'il est agréable d'abréger en : print
$texte
- Le code est-il correct ? Commenter l'exécution
ensuite. Corriger si nécessaire
#!/usr/bin/perl -w
# erreur de syntaxe classique : ne pas mettre de virgule après le filehandle
print STDOUT "Quel est ton prénom ? ";
$prenom = <STDIN>;
print "Bonjour $prenom, comment vas-tu ? \n";
Le code est correcte, à noter le passage à la ligne après le prénom (normal?).
La variable $prenom est le prénom entré par l'utilisateur, il est conservé dans la variable pour être utilisé dans la question " Comment vas-tu?".
La variable est réinitialisée à chaque fois que l'utilisateur entre un nouveau prénom.
2. Compléter le dialogue en demandant l'age
Programme
Perl : cliquez ici
Résultat question 2 :