Les
accès aux fichiers s'effectuent habituellement par
l'intermédiaire de variables particulières
appeléesfilehandles,
en françaisdescripteurs
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'instructionchomp $varpermet
de retirer ce caractère\nde la
chaine et renvoie 1 s'il réussit
Ne pas la confondre avecchop $varqui
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 avecprint, sous la
syntaxe générale :print
STDOUT $texte;qu'il
est agréable d'abréger en :print $texte
Le
script de base :
#!/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 résultat dans cygwin :
Grâce au préambule, nous pouvons
apporter une
modification au script :
-Au lieu d'écrire Print STDOUT "Quel est ton
prénom ?"; , nous pouvons directement écrire : Print "Quel est ton
prénom ?";
-Au niveau du résultat, nous voyons qu'il y a eu un retour
à la ligne après "Kelly", ce que nous ne voulons
pas.
Pour ca, il faut donc insérer un chomp$nom_de_la_variable.