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: |
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.
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.
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.
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:
|
1999-09-23, generated by lfparser version 0.7