Présentation du langage Perl
Perl signifie Practical Extraction and Report Language,
c'est un langage créé en 1987 par Larry Wall.
Ce langage est interprété et pré-compilé à l'exécution.
Le code de son interpréteur est placé sous licence GNU GPL et Artistic License.
Perl est un langage très riche et puissant ; c'est une boîte à outils fort
utile dans de nombreuses situations : administration système, manipulation de
textes (XML, courriels, logs, linguistique, génétique), Flux et protocoles réseaux
(SNMP, web, LDAP, etc), bases de données, interfaces graphiques etc.
C'est une glue générale entre presque tout.
Couteau suisse du monde UNIX, ses nombreuses bibliothèques le rendent vite irremplaçable
aux yeux de ceux qui en acquièrent la maîtrise. La prise en main du langage est facilitée
par de nombreux rapprochements possibles avec le C, le shell ou awk. Sa conformité
POSIX en fait un allié indispensable à l'administrateur système.
Il est facilement portable sur 87 plateformes.
Avantages
Un vrai langage puissant :
- Programmations impérative, fonctionnelle et orientée objet,
- Récursivité, modularité, exceptions,
- Tableaux, listes et tables de hachage natifs,
- Gestion mémoire : ramasse-miettes,
- Expressions régulières,
- Surcharges d'opérateurs, fermetures (closures),
- Richesse des bibliothèques (efficacité de programmation),
- Multi plateforme (87 portages),
- Apprentissage facilité (C, sh, sed, POSIX, etc),
- Déguggeur intégré.
Types de données
Ses types de données ont pour caractéristiques :
simplicité, souplesse et puissance. Le développeur bénéficie
de la capacité d'introspection, de structures anonymes,
de l'autovivification, du support natif d'unicode, etc.
Trois types de données :
- Scalaire : donnée atomique,
- Tableau (gestion dynamique et automatique de la taille),
- Table de hachage (association clef donne valeur).
Facilités diverses
Perl aide vraiment le développeur et l'administrateur système et réseau
dans leur travail. De nombreux facilités permettent une grande efficacité :
- Manipulation aisée des fichiers : l'accès aux wild-cards du shell
(/usr/include/*.h) pour lister des fichiers et aux opérateurs de tests
(-f -w -d -e -s etc) rendent le programme plus facile à écrire et à lire.
- Gestion des arguments : outre les modules de gestion fine de paramêtres de
la ligne de commande, le fichier virtuel ARGV simule le comportement standard
des outils UNIX pour la lecture : lecture automatique dans les fichiers
passés en paramètres ou bien sur l'entrée standard dans le cas où le programme
est lancé sans argument (gestion automatique des ouvertures et fermetures
des fichiers). Pratique pour écrire rapidement un filtre !
- Tous les appels système POSIX sont présent en Perl :
chmod, chown, stat, rename, umask, unlink, chdir, mkdir
opendir/readdir/closedir, pipe, mkfifo, gestion des signaux, fork, exec,
system, setuid, errno, strftime, Threads natifs, etc
- Les expressions régulières sont intégrées au langage pour une grande
facilité de manipulation. On retrouve nos habitude de grep, sed ou awk avec
de puissants ajouts : ensembles plus riches, quantificateurs non gourmands, etc.
Perl est la référence dans le monde des regexp :
PCRE (Perl compatible regular expressions) est intégré dans de
nombreux langages (C, PHP, JAVA, etc) et outils (Postfix, etc).
- etc
Références et programmation par objets
Les références permettent la gestion des données par adresses,
mais contrairement au langage C ou C++, la manipulation des références
des références est sure (pas d'arithmétique) et souple (contrairement à Java).
Les références anonymes et le garbage collector permettent une
gestion aisée de la mémoire.
Toutes les fonctionnalités objet sont disponibles en Perl :
- Classes et instances,
- Méthodes et champs statiques,
- Héritage multiple,
- Polymorphisme,
- Encapsulation,
- Typage dynamique ...
L'idée directrice lors de l'introduction de l'objet dans Perl fut la
réutilisation de syntaxes pré-existantes. Cela simplicie et facilite
sa mise en œuvre.
Avec Perl, on allie la généricité de l'objet et puissance d'un langage souple.
Utilisations connues de Perl
De nombreux logiciels utilisent Perl :
- Sympa (gestionnaire de listes de diffusion)
- SpamAssassin (filtre courriel)
- Bugzilla (gestionnaire de bugs)
- Urpmi (gestionnaire de packages de Mandrake)
- Frozen-Bubble (jeu d'arcade)
- Open Webmail
- AwStats (analyseur de log)
- Mioga (outil de travail collaboratif)
- Rational : ClearCase (gestion de conf), ClearQuest
- Systran : logiciel de traduction (linguistique)
- etc
De nombreuses entreprises connues utilisent Perl :
- Yahoo!
La plupart de notre code est écrit en Perl, un langage étonnamment
efficace. On peut tout faire en Perl !
- Le Monde (paiement sécurisé en ligne)
- Gandi : registrar
- OVH : hébergeur web
- PriceMinister : e-commerce
- Les Nouveaux Constructeurs : immobilier
- etc
Conclusion
Perl n'a cessé d'évoluer depuis 20 ans, gage de son dynamisme,
grâce à une communauté active et soudée (coordination, coopération, financement, etc).
Perl est riche, puissant et souple. Il fait autre chose que du CGI et le fait bien.