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