Sommaire Carte Index Recherche Nouvelles Archives Liens A propos
[Barre Superieure]
[Barre Inferieure]
[Photo of the Author]
par Guido Socher

L´auteur:

Guido est un fan de Linux depuis longtemps, et récement il est devenu éditeur pour LinuxFocus. Ces jours-ci il est également très occupé à rénover la maison, planter des salades, et d'autres trucs à faire dans le jardin.

Sommaire:

Perl part I

[Illustration]

Résumé:

C'est le début d'une série d'articles sur Perl. Aucune connaissance préalable de Perl n'est nécéssaire pour comprendre cet article. Une connaissance des langages procéduraux (comme C ou Pascal) rend les débuts avec Perl un peu plus faciles.



 

Qu'est-ce que perl?

Perl est un langage de script qui a été développé au départ par Larry Wall. Le code source peut directement être "éxecuté" par interprétation par le programme perl. Ce programme perl est habituellement installé sous /usr/bin/perl. Perl est similaire en bien des points aux programmes unix classiques sed et awk, mais perl a fait un bon bout de chemin par rapport à eux. Aujourd'hui vous pouvez aussi bien faire de la programmation orientée objet, et créer des interfaces graphiques avec perl. On peut facilement accroître les fonctionalités de perl grâce à l'ajout de librairies et d'archives perl, que l'on trouve sur CPAN qui en contient la pluspart. Ce premier article ne va cependant pas s'aventurer dans ces sujets avancés. Je souhaite plutôt vous montrer quelques bases, et aborder les sujets plus pointus dans de prochains articles.

Perl est un langage de scripts très utile. C'est un outil universel pour quiconque ayant des connaissances en programmation.

 

Un programme simple

Sauvez le programme suivant sous le nom mon1erprg et ensuite rendez-le exécutable avec la commande
chmod 755 mon1erprg. Lancez le programme et regardez ce qu'il fait.

#!/usr/bin/perl -w
print "Quel est votre nom?\n";
$nom=<STDIN>;
#suppression du caractère retour chariot:
chomp($nom);
$long=length($nom);
print "\nSalut $nom! Votre nom a une longueur de $long caractères\n";

Regardons maintenant le code. La première ligne n'est pas un commentaire. Ce type de ligne commencant par "#!" est typique des scripts unix, et précise au système d'exploitation quoi faire avec ce fichier texte. Toute ligne après la première ligne commencant par un caractère # est une ligne de commentaire (par exemple la ligne 4 de notre programme). Nous pouvons aussi voir que toutes les instructions sont terminées par un point virgule. Un nom de variable commence par un signe dollar. Les variables perl peuvent contenir des chaines de caractères, des entiers, et des réels. Les données sont converties automatiquement dans le bon type en fonction du contexte d'utilisation de la variable. Les $-variables sont appelées variables scalaires. Perl possède aussi des variables tableaux (dont les noms commencent par un @ et non un $) et tables de hashage (commencant par un % et non un $). Nous discuterons de ces types de variables dans un article ultérieur.
La fonction print sur la seconde ligne de notre programme écrit une chaine de caractères sur la sortie standard (stdout). Elle est similaire à la commande echo dans les scripts shells, et les variables sont remplacées par leur valeur si la chaine de caractère est entre guillemets ("). Les variables entre apostrophes simples (') ne sont pas remplacées par leur valeur, et un backslash peut être utilisé pour protéger des caractères spéciaux, tels le signe dollar ou bien une apostrophe dans une chaine entre apostrophes ou guillemets. Voici un exemple :

#!/usr/bin/perl -w
$nom="joe";
print "1 $nom\n";
print '2 ', $nom , "\n";
print '3 ', '$nom',"\n";
print "4 \"$nom\"\n";
print "5 \$nom\n";
print "6 \"\$nom\"\n";

Ceci va donner :

1 joe
2 joe
3 $nom
4 "joe"
5 $nom
6 "$nom"

Retournons à notre programme initial. La ligne $nom=<STDIN>; attend une entrée clavier de la part de l'utilisateur, et ce jusqu'à ce qu'il/elle ait tapé sur "entrée". Après cette ligne, la variable $nom contient ce que l'utilisateur a entré, y compris le caractère retour chariot de fin de ligne. La commande chomp($nom); supprime ce caractère final de la variable $nom. Pour finir la fonction length compte le nombre de caractères présents dans $nom.

Malheureusement notre programme a un bug. Que se passe-t-il si vous tapez une tabulation ou un espace après votre nom ? Il sera également décompté. Comment pouvons nous résoudre ce problème ?
Ce dont nous avons besoin est d'une fonction du type "rechercher/remplacer" qui supprime tous les espaces du nom. Perl est très fort pour manipuler des chaines de caractères, et offre cette fonctionnalité. [ \t] est une expression régulière qui correspond à un espace ou une tabulation. En perl ceci peut aussi être abrégé, et écrit \s. (Plus d'informations sur les expressions régulières peuvent être obtenues ici). La commande de substitution en perl s'appuie sur une expression régulière, et a la syntaxe suivante : $nom =~ s/regexp/remplacement/g; Si on laisse la chaine de remplacement vide, alors toutes les occurences correspondant à l'expression régulière ne seront pas remplacées mais supprimées. Maintenant notre programme a l'allure suivante :

#!/usr/bin/perl -w
print " Quel est votre nom?\n";
$nom=<STDIN>;
#suppression du caractère retour charriot:
chomp($nom);
print "\nSalut $nom!";
#suppression des espaces de la chaine de caractères:
$nom=~s/\s//g;
$long=length($nom);
print " Votre nom a une longueur de $long caractères\n";

Ce n'est pas un programme très utile car il n'a aucune structure de contrôle (boucles et conditions) mais il vous donne une idée de ce que peut être un programme en perl. Cette série d'articles va continuer, et on va vite arriver à des programmes plus complexes.

 

Documentation

Grâce à cette série vous allez apprendre perl pas à pas. Mais vous pouvez déjà télécharger ce petit manuel de référence (perlref-5.004.1.tar.gz) . Le fichier README inclus explique comment l'imprimer pour en faire un livret.

Vous pouvez également éssayer "man perl" et "man perlfunc" pour voir quelles sont les fonctions disponibles. Tout ceci n'est cependant que du matériel de référence, et vous pouvez suivre ce tutorial ou lire un livre tel que "Programmation en Perl" de chez O'Reilly pour apprendre le perl.


Site Web maintenu par l´équipe d´édition LinuxFocus
© Guido Socher
LinuxFocus 1999
Translation information:
en -> -- Guido Socher
en -> fr Yann Hirou

1999-09-23, generated by lfparser version 0.7

mirror server hosted at Truenetwork, Russian Federation.