Comparatif des scripts côtés serveur - Perl
ECL - Campus - Options TIC

Comparaison des scripts côté serveur
Sommaire
o Introduction
o ASP
o JSP
o Perl
o PHP
o Conclusion
PERL - Practical Extraction and Report Language


  Description :

Perl est un langage optimisé pour extraire des informations de fichiers textes et imprimer des rapports basés sur ces informations. C'est aussi un bon langage pour de nombreuses tâches d'administration système. Il est écrit dans le but d'être pratique (simple à utiliser, efficace, complet) plutôt que beau (petit, élégant, minimaliste).

Mais comment fonctionne Perl ? Contrairement à TCL/TK qui interprète ligne après ligne, comme du bon vieux basic, l'interpréteur Perl compile les scripts Perl pour ensuite les exécuter, ce qui permet deux choses: des vérifications de syntaxe, et une très grande vitesse d'exécution. Perl est séquentiel et Orienté Objet, donc libre à son utilisateur de faire son choix. Mais il dispose en standard de nombreuses fonctions qui font que sa portabilité d'un système d'exploitation à un autre est extrême ! On peut même exporter du code Perl en C, et compiler des interfaces à des librairies existantes pour les utiliser en Perl ! Perl est aussi le seul langage de type script qui puisse être intégré à Apache, le transformant en langage compilé et caché en mémoire, le rendant aussi performant que du C !

Le Perl combine (du point de vue de l'auteur) les meilleures fonctionnalités de C, sed, awk et sh, de telle manière que les personnes familiarisées à ces langages ne devraient avoir aucune difficulté avec celui-ci. La syntaxe se rapproche presque totalement de celle du C. Contrairement à la plupart des utilitaires Unix, Perl ne limite pas arbitrairement la taille des données -- si vous avez assez de mémoire, Perl peut remplir une chaîne de caractères avec le contenu total d'un fichier. Il n'y a pas de niveau maximum à la récursivité. Et les tables utilisées par les tableaux de hachage (anciennement appelé "tableaux associatifs") croissent dès que nécessaire afin de garantir un bon niveau de performance. Perl utilise des techniques sophistiquées de recherche de motif pour pouvoir traiter très rapidement de très grandes quantités de données. Bien qu'optimisé pour le traitement des fichiers textes, Perl peut aussi traiter des données binaires, et faire que des fichiers dbm soit vus commes des tableaux de hachage. Les scripts Perl ayant leurs setuid bits positionnés sont plus sûrs que des programmes C grâce à des mécanismes de suivi de flot de données qui permettent d'éviter de nombreux trous de securités particulièrement stupides.

Si vous avez un problème pour lequel vous auriez utilisé sed, awk ou sh, mais qui dépasse leurs capacités ou qui doit fonctionner un peu plus rapidement et que vous ne voulez pas l'écrire en C, alors le Perl est pour vous. Il existe aussi des convertisseurs pouvant transformer vos scripts sed et awk en scripts Perl.


  Fonctionnalités :


  • De nombreuses améliorations à l'utilisation

    Il est maintenant possible d'écrire du code Perl nettement plus lisible (même dans les expressions régulières). Les variables absconses peuvent être remplacées par des identificateurs plus compréhensibles. Les messages d'erreurs sont plus detaillés, et les messages optionnels d'avertissements devraient indiquer une grande majorité des erreurs peuvant être commises par un novice. On ne le dira jamais assez, mais lorsque vous obtenez un comportement erratique, essayez de lancer votre script avec le modificateur -w !!! De toutes manières, même si n'avez pas de comportement erratique, essayez d'utiliser le modificateur -w.

  • Une grammaire simplifiée

    La taille de la nouvelle grammaire yacc fait environ la moitié de la précédente. Un très grand nombre de règles arbitraires ont été régularisées. Le nombre des mots réservés a été réduit de plus de 2/3. Malgré celà, presque tous les anciens scripts Perl fonctionnent sans aucun changement.

  • Portée lexicale

    Les variables Perl peuvent maintenant être déclarées à l'interieur d'une portée lexicale, de la même manière que les variables ``auto'' en C. Non seulement, c'est plus efficace, mais çà contribue à une plus grande sécurité pour la programmation de code réutilisable. Les routines anonymes disposent ainsi d'un couplage fort des variables locales.

  • Structure de données performantes

    N'importe quelle variable scalaire, y compris un élément de tableau, peut maintenant contenir une référence vers une autre variable ou une routine. Il devient simple de créer des variables et routines anonymes. Perl gère pour vous les compteurs de référence.

  • Modularité et réutilisabilité

    La bibliothèque Perl est maintenant constituée de modules qui peuvent être partagés facilement entre plusieurs paquetages. Un paquetage peut choisir d'importer tout ou parties de l'interface publiée d'un module. Les pragmas (directives de compilation) sont définis et utilisés par le même mécanisme.

  • Programmation orientée objet

    Un paquetage peut fonctionner comme un classe. L'héritage multiple dynamique et les méthodes virtuelles sont supportées de manière très directe et n'introduisent que peu de changement syntaxiques. Les descripteurs de fichier sont maintenant gérés comme des objets.

  • Intégrable et extensible

    Perl peut maintenant être intégré simplement dans vos applications en C ou C++, et peut indifférement appeler ou être appelé par vos routines à travers une interface documentée. Le préprocesseur XS fourni facilite l'intégration de routines en C ou C++ dans une application Perl. Le chargement dynamique de module est supporté, et Perl lui-même peut être transformé en une librairie dynamique.

  • Conforme POSIX

    Un apport majeur est la création du module POSIX, qui fournit l'accès à toutes les routines et définitions POSIX, au travers de classes d'objets lorsque c'est approprié.

  • Constructeurs et destructeurs de paquetage

    Les nouveaux blocs BEGIN et END sont exécutés lorsque la compilation du paquetage s'achève et juste à la sortie du programme. Ils peuvent être utilisés dans un mode dégradé correspondant à celui du awk en utilisant les modificateurs -p ou -n.

  • De multiples implémentations de DBM en simultané

    Un script Perl peut maintenant accèder à des fichiers DBM, NDBM, SDBM, GDBM et Berkeley DB simultanément. En fait, l'ancienne interface dbmopen a été généralisée pour permettre à n'importe quelle variable d'être rattachée à une classe d'objet définissant ses propres méthodes d'accès.

  • Les définitions des routines peuvent desormais être chargées automatiquement

    En fait, le mécanisme AUTOLOAD vous permet aussi de définir n'importe quelle sémantique arbitraire pour l'appel de routines indéfinies. Ce n'est pas seulement du chargement automatique.

  • Amélioration des expressions régulières

    Vous pouvez maintenant spécifier des quantificateurs qui ne soit pas avides. Il est aussi possible de faire des regroupements sans créer de références. Tout comme vous pouvez ajouter des espacements et des commentaires dans les expressions régulières. Un mécanisme conséquent permettant d'étendre les capacités des expressions régulières a été ajouté mais reste presque entièrement compatible.

  • Une pléthore de modules disponibles

    Le CPAN (Comprehensive Perl Archive Network ou Réseau d'archives détaillées de Perl) décrit dans la page de manuel perlmodlib contient des centaines de modules prêts à l'emploi fournissant une quantité astronomique de code réutilisable. Vous trouverez le site miroir le plus proche de chez vous à l'adresse http://www.perl.com/CPAN.

  • Compilateur

    Bien qu'il ne soit pas encore en production, il existe un compilateur Perl-vers-C qui fonctionne. Il peut générer un byte code (code objet) portable, du simple C ou bien du code C optimisé.


  Liens officiels :




  Mes signets :

© 2000 Romain Deneau