Engager vous dans la communauté :
- Devenez modérateur de votre langage sur le forum
- Accéder aux statistiques de votre rubrique et du site
- Créer vos propres sous catégories
- Ajouter et valider des sites sans réserve
- Créer / Déposer des articles pour votre langage
- Créer / Déposer des tutoriaux pour votre langage
- Lancer des débats pour votre langage
- Ajouter des news et des actus sur votre langage
----------présentation du langage perl----------------
1) PERL : introduction
- Perl?
Perl est un langage interpreté (c'est a dire qu'il ne produit pas d'executable, et qu'il faut que le poste qui l'invoque soit
équipé de l'interpréteur), concu a la base pour faire gagner du temps. Il repose sur un systeme quasi infini de modules
(http://search.cpan.org), qui lui permettent meme des interactions avec d'autres langages, au nombre desquels figure le C.
PERL a été créé par Larry Wall, c'est un acronyme qui signifie 'Practical Extraction and Report Language', Langage d'extraction
et de rapport 'facilité'. La devise de tous les perlistes est 'there's more than one way to do it' : il y a plus d'une facon
de le faire. La principale qualité du perliste? Etre feignant!
Perl servira principalement pour du CGI, mais est surtout un outil extremement puissant de manipulation de chaines, donc logs,
mails, et ... bioinformatique (mon ptit domaine a moi :p ).
- Ecrire perl
Pour écrire en perl, il vous faut un éditeur de texte, celui par défaut de votre os convient très bien. Il faut aussi
l'interpreteur du langage. De manière super simple, vous pouvez vous permettre, au prompt, de taper 'perl', de valider, puis
de taper votre programme...
Perl fonctionne aussi en mode 'ligne de commande'.
Mon conseil reste quand meme d'utiliser un EDI, comme EngInSite Perl Editor, qui facilitera grandement votre travail.
Il vous faudra donc:
* Perl (version 5.6.8 actuellement)
* Un textpad quelconque
* Un peu de patience au début...
Donc, a la fin de l'installation de perl (je vous conseille de prendre le logiciel 'activeperl', vous serez prets a vous lancer
dans le monde sans pitié du script of the dead...
2) HELLO, LARRY!
C'est parti, on va commencer a écrire le script n°1 : le fammeux 'hello larry'!
Donc, on va considérer que vous êtes en mode console (Win+R sous Win, ou shell sous *n*x).
tapez perl -w puis validez
entrez ensuite le code suivant :
use strict;
use warnings;
print "Hello Larry\n";
__END__
Vous aurez un joli Hello Larry suivi d'un saut de ligne qui s'affiche. Ok. Maintenant, on fait ce que je prefere dans la vie,
on chope un scalpel et on dissèque (manque de chance, les scripts ne se dissèquent pas au scalpel...)
perl -w : On lance le programme perl, avec l'option -w qui signifie qu'on souhaite recevoir les avertissements relatifs
aux erreurs de code.
use *; : est une fonction comme l'include, qui appelle des modules. Ici strict et warnings, qui vont etre chargés de bloquer le
code (ou du moins de sauter des étapes) quand il est faux.
print "chaine\n"; : on affiche (en fait il s'agit d'une ecriture dans le fichier STDOUT, on verra ca plus tard) Hello Larry
et un retour a la ligne, symbolisé par \n. Attention, les doubles guillemets sont 'interpretants', les simples sont 'stricts':
print 'hello larry\n' affiche hello larry\n.
__END__ : en mode 'saisie directe' (sans enregistrer dans un fichier), ca signifie qu'on relit tout le code et qu'on lance
l'interpretation.
Une autre manière de faire tout ca est de créer un fichier hello.pl dans le repertoire perl (c'est plus simple), qui contient
#!C:\perl\bin\perl.exe -w
use strict;
use warnings;
print "Hello Larry\n";
__END__
Attention, la première ligne est OBLIGATOIRE, et sous linux ca sera en général
#!\usr\bin\perl -w
, elle indique le chemin vers l'interpreteur.
Une dernière chose? Oui, toutes les commandes se finissent par un ; .
3) LES VARIABLES
"Il y a a peu pres autant de ressemblance entre la programmation sans variable et la vraie programmation qu'entre le catalogue
jardiland et la morale du jardin" Oui, c'est vrai, et en tout cas meme si c'etait pas vrai ca m'avait bien fait marrer sur le
coup.
Qu'est-ce qu'une variable?
Beuh, vaste question. Globalement, une variable est un 'nom' qui contient une 'valeur'.
Chaque utilisation du nom fait utiliser la valeur.
En perl, une variable se declare de la façon suivante :
my $var1 = 0; #on initialise la variable en déclarant my (il existe aussi our, on verra apres)
my $var2 = "U"; #affiche U
my $var3 = "U\n"; #U et un retour chariot
my $var4 = 'U'; #U, identique a $var2
my $var5 = 'U\n'; #U\n, a cause des guillemets simples!
Dans le cas de programmes qui utilisent beaucoup de variables, il peut être intéressant de déclarer plusieurs variables par ligne. On procéde de la manière suivante:
my ($var1, $var2, $var3) = ("val1", "val2, "val3");
#On verra plus tard la similitude avec les tableaux, perl fait très bien la différence!
Pour faire afficher une variable, on ecrit:
my $nom = "Dr_T";
print $nom;
#ou print "$nom", mais pas print '$nom' qui afficherait $nom et pas Dr_T..
Ok? Ca commence a rentrer...
L'avantage de perl, c'est que les données sont très faiblement typées (oui, pas typées du tout ou presque), donc, pas besoin
de préciser. Pour ceux qui ont l'experience de Delphi, C, ou meme de CaML, et qui ont deja passé des heures a chercher LE bon
transtypage, vous comprendrez la joie que ca me procure!
En gros, la conséquence de ca est que:
$deux = "2"; #chaine de caractères? hum pas sur!
$trois = $deux+1; #Ah bah nan, les deux a la fois!
Pour etre precis, les variables textuelles doivent quand meme etre déclarées entre guillemets, sinon perl considère que c'est
un 'bareword' (mot nu), et leve une exception.
Que peut-on faire avec les variables?
Concaténer :
$vingt-trois = $deux.$trois #oui, vous l'aurez deja remarqué, mais la syntaxe est proche de php!
Ajouter, diviser, soustraire, multiplier, euclider (ca se dit pas, on dit modulo):
+ / - * % ( a noter que ce dernier renvoie le reste de l'euclidienne)
Mettre a l'exponentielle :
**
(toutes ces notions sont reprises plus loin...)
Il existe évidemment un nombre enorme de fonctions mathématiques, comme cos, soch, acosh, sin, ... Je vous invite a fouiller un
peu si jamais ca vous interesse.
Jouons avec les variables :
#!C:\perl\bin\perl.exe -w
use strict;
use warnings;
my $nom = 'Dr_T';
my $age = 18;
print $nom.', '.$age."ans, toutes ses dents\n";
print "$nom, $age ans, toutes ses dents\n";
#les deux print ont la meme sortie
On peut donc mixer les chaines dans une meme chaine...
-------------Fin de la petite présentation--------------
__________________________
J'ajouterais que Perl est un langage extrêmement permissif, ce qui est à la fois un défaut et une qualité. La qualité est évidente : pas besoin de trop se casser la tête ! Le défaut est que si le codeur ne fait pas attention, le code peut très vite devenir illisible.
On dit souvent de Perl qu'il est illisible : c'est absolument faux ! Il est parfaitement lisible pour peu que le codeur fasse attention à ce qu'il fait.
Perl excelle dans la gestion des chaînes de caractères et des tableaux. Ainsi, il fait une grande place aux regexp (regular expression) qui permettent de rechercher simplement un motif dans une chaîne de caratère.
Perl gère très bien et très facilement les fichiers. Ceci associé à son traitement intuitif des chaîne de caractère en fait une très bonne arme pour l'analyse de logs divers.
Perl a été conçu pour simplifier les choses courantes (comme l'analyse de logs par exemple) sans pour autant complexifier ou rendre impossible les choses complexes.
On peut donc quasiment tout faire en Perl à l'aide de modules spécifiques.
Il y a trois types de données en Perl : les scalaires (regroupant entier, flottants, chaîne de caractère et référence majoritairement), les tableaux (qui contiennnent des scalires) et les tables de hachages ou hachages ou tableaux associatifs.
Pour distinguer une variable de type scalaire d'une de type tableau ou hachage, on rajoute des symboles spéciaux devant les noms de variables. Ainsi, $i est un scalaire, @tab est un tableau est %hach est une table de hachage.
En plus des structures de cpntrôle existantes dans les autres langages (if-else, when, for, do...while...) Perl rajoute le test unless (à moins que, le contraire du if), la boucle until (jusqu'à) et surtout la boucle foreach qui permet de facilement avoir accés à chaque membre d'un tableau ou d'un hachage.
Perl est à la base un langage de programmation impératif mais il supporte depuis peu la POO.
Si il y a besoin d'un modérateur Perl, je peux exercer cette fonction, lol.
__________________________
[col]Woufeil[/col] et respectez la charte.