FAQ PerlConsultez toutes les FAQ

Nombre d'auteurs : 18, nombre de questions : 250, dernière mise à jour : 29 octobre 2015  Ajouter une question

 

Bienvenue sur la FAQ Perl. Cette FAQ a pour vocation de vous enseigner ou de vous faire revoir les notions élémentaires de ce fantastique langage. Perl est très utilisé dans différents domaines depuis la gestion système, le réseaux, l'administration de bases de données, le web (CGI), la bureautique, la conception d'interfaces graphiques ou des contextes scientifiques telle la bioinformatique. Nous espérons que cette FAQ vous sera d'une grande utilité.

Vous souhaitez participer à l'amélioration de cette FAQ, n'hésitez pas !! Commentez

Bonne lecture !


SommaireS'initier à PerlLes entrées/Sorties conversationnelles (4)
précédent sommaire suivant
 

Au cours de vos programmes, vous aurez sans doute besoin de paramètres propres à l'utilisateur. Celui-ci aura alors à renseigner au programme ses propres données. Cette interaction, dans sa forme la plus simple, s'effectue via l'entrée standard (le clavier). Pour avoir accès à ce qui est rentré via le clavier, vous aurez besoin de manipuler l'opérateur STDIN :

Code perl : Sélectionner tout
1
2
3
4
print "Rentres une phrase :\n"; 
$in = <STDIN>; 
chomp $in; 
print "$in\n";
Dans ce programme très simple, l'utilisateur devra rentrer une phrase ou un chiffre qui sera validé par l'appui sur la touche Entrée. Supposons que l'utilisateur ait rentré le chiffre 2. La variable scalaire contient ainsi pour le moment "2\n". Le caractère de retour chariot (la touche entrée) ne nous intéresse pas. D'où l'appel de la fonction chomp qui enlève le dernier caractère s'il s'agit d'une fin de ligne. Le programme affiche enfin le contenu de la variable scalaire $in.
chomp supprime le dernier caractère d'une chaîne si ce dernier est un retour chariot et elle retourne ce caractère.

Voici quelques explications d'utilisation de la fonction chomp :

Code perl : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
my $chaine = "Bonjour\n"; 
my $chomp  = chomp $chaine;    # $chaine = "Bonjour",  $chomp = "\n" 
  
my $chaine = "tutu\ntoto"; 
my $chomp  = chomp $chaine;    # $chaine = "tutu\ntoto",  $chomp1 = "" 
  
my $chaine = "\n"; 
my $chomp  = chomp $chaine;    # $chaine = "",  $chomp1 = "" 
  
my $chaine = "123"; 
my $chomp  = chomp $chaine;    # $chaine = "123",  $chomp1 = ""

Mis à jour le 5 mai 2005 djibril GLDavid

Nous avons vu tout à l'heure que l'opérateur (ou handle, cf. les fichiers) STDIN était contenu dans un opérateur dit opérateur diamant <>. Cet opérateur est très utile notamment pour la manipulation des arguments fournis à votre programme. Un argument, pour un programme Perl, désigne un fichier que vous passez en paramètre à votre programme. Votre code lira ainsi le fichier donné :

Code perl : Sélectionner tout
perl mon_programme.pl GLDavid djibril gnux 2eurocents
Notre programme Perl va devoir lire chacun des fichiers passés en argument et afficher leur contenu sur la sortie standard :

Code perl : Sélectionner tout
1
2
3
4
foreach $ligne (<>) { 
	chomp $ligne; 
	print "$ligne\n"; 
}
Dans notre boucle, nous lisons chacun des fichiers passés séquentiellement. L'opérateur chomp le dernier caractère si ce dernier est un retour chariot et nous affichons sur la sortie standard la ligne en cours du fichier.

Mis à jour le 5 mai 2005 GLDavid

La sortie standard détermine le média de sortie avec lequel votre programme affichera une information à vos utilisateurs. De manière commune, la sortie standard sera votre écran. Dans nos précédents codes sources, nous avons vu que pour afficher quelque chose, nous avions recours à la fonction print. Cette fonction prend en argument une chaîne de caractères qu'elle affichera sur la sortie standard. Mais elle permet aussi de vous afficher le contenu de variables.

Code perl : Sélectionner tout
1
2
3
4
5
$out = "Bonjour Maître.\n"; 
print "$out\n"; 
print "Voici mes maîtres :\n"; 
@tableau = qw /GLDavid Gnux djibril 2Eurocents/; 
print "@tableau";
Enfin, dans votre chaîne de caractères fournie à print, rien ne vous empêche de procéder à des concaténations.

Mis à jour le 5 mai 2005 GLDavid

Chers pratiquants du C, n'ayez pas peur de Perl ! Vous y retrouverez la première fonction que vous avez utilisée à vos débuts : printf ! Pour les non Cistes (codeurs en C), printf est une fonction permettant d'afficher, certes, sur la sortie standard mais aussi de formater ce que l'on souhaite imprimer. Prenons l'exemple d'un nombre avec décimales. Naturellement, pour certains de ces nombres, on ne veut retenir que quelques chiffres après la partie entière :

Code perl : Sélectionner tout
1
2
3
4
5
6
my $taux = 6.55957; 
print "Rentre une valeur en euros : "; 
my $euro = <STDIN>; 
chomp $euro; 
my $franc = $euro * $taux; 
printf "%.3f euros vaut %.3f francs.\n", $euro, $franc;
Code : Sélectionner tout
1
2
Rentrez une valeur en euros : 12.2 
12.200 euros vaut 80.027 francs.
Dans cet exemple, nous demandons à l'utilisateur de rentrer un montant correspondant à une valeur en euros.

Au préalable, nous aurons défini le taux de change dans la variable scalaire $taux. La conversion s'effectue et nous affectons à la variable $franc le résultat de la conversion. Notre ligne la plus intéressante est la dernière. Plutôt que d'appeler print, nous voulons seulement retenir trois décimales pour chacune de ces valeurs ($euro et $franc).
A l'aide du drapeau %.3f, nous indiquons à printf que pour les variables $euro et $franc nous ne souhaitons afficher que la partie entière ainsi que les 3 chiffres suivants le séparateur décimal. Notez enfin que vous aurez à déterminer pour chaque variable un drapeau correspondant. Quelques drapeaux :

Drapeau Signification
%d Affiche un entier
%g Notation automatique décimale, entière ou exponentielle
%.3f Affiche un flottant avec 3 chiffres après le séparateur décimal
%x Affiche un hexadécimal
%o Affiche un octal
%s Affiche une chaîne de caractères
%10s Affiche une chaîne de caractères avec une justification de 10 espaces vers la droite
%-10s Affiche une chaîne de caractère avec une justification de 10 espaces vers la gauche

Voir : perldoc perlfunc printf

Mis à jour le 5 mai 2005 GLDavid

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2017 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

 
Responsable bénévole de la rubrique Perl : djibril -