| Perl / Tk | Mise à jour 12-2001 |
|
PERL est un langage extrèmement répandu qui, grâce à ses extensions multiples, trouve son usage dans de nombreuses applications.
Il a précédé en cela d'autres langages ou outils, qui ont été à leur tour portés sous d'autres environnements: on trouve sous Windows notamment Bash, Tcl, Gimp et sûrement bien d'autres. La preuve de son caractère universel est encore renforcée par l'existence de programmes de traduction : a2p traduit un programme AWK en PERL (un exemple en est donné plus loin).
Shell PERL Commande perl. Langage de shell Comme Bash, PERL est un langage de shell. Comme lui, il dispose du traitement des variables, des conditions, des boucles et des fonctions. La fonction exec permet d'exécuter des commandes bash. Variables locales et globales Les variables peuvent être définies au niveau global ou au niveau local de la fonction par le mot clé my. Les tableaux associatifs Ceci n'est pas nouveau en PERL, mais diffère de la notion classique de tableaux. En effet, dans la plupart des langages, un tableau est défini par son nombres d'éléments, dans chacune de ses dimensions. On accède à un élément par un indice, qui représente son n° d'ordre dans la dimension considérée. En revanche, un tableau associatif, lui, travaille avec des clés, ce qui permet un accès plus direct aux éléments du tableau. Par exemple, on désire un tableau donnant la fréquence des notes de la gamme; on accède directement avec la clé "SOL" à la note voulue, au lieu de rechercher l'indice auquel se trouve la note. L'intérêt est très grand avec des données chargées en ordre quelconque, contrairement aux notes de musique qui sont bien déterminées. Programmation objet PERL propose aussi une programmation sous forme objet qui, à l'instar d'autres langages, autorise une programmation modulaire et fiable des applications. Autres fonctionnalités ... Enfin, Perl propose quantités de fonctions de traitement des chaînes de caractères, mathématiques, variables sytème, examen des processus en cours ... qui en font un langage d'usage général. Le volume de l'aide fournie avec la distribution est énorme. Elle est découpée en une trentaine de sections différentes, qui abordent chacune un sujet. Les widgets Tk L'intégration du module Tk s'effectue par l'instruction use Tk;. Les widgets fonctionnent de la même façon qu'avec TCL. Seule la syntaxe d'accès aux objets change, mais les propriétés et méthodes sont identiques. Le premier d'entre eux est le toplevel, qui définit la fenêtre du programme. Les autres (boutons, menus, cadres, cases à cocher, ...) sont inclus dans le toplevel. Ainsi, si le toplevel s'appelle .w, un bouton pourra s'appeler .w.bt01. Un point important dans l'utilisation des widgets réside dans la gestion de la géométrie, c'est-à-dire la disposition des widgets les uns par rapport aux autres. Il existe 3 méthodes de gestion :
Mysql L'extension DBI (Data Base Interface) fournit des fonctions donnant accès à des bases de données, notamment Mysql. Elle est activée par l'instruction use DBI;.
|
Les exemples présentés ci-dessous exploitent plusieurs fonctionnalités de Perl. Ils correspondent pour la plupart à des exercices déjà réalisés en TCL. La comparaison des exemples fait apparaître les similitudes dans la logique de gestion, et les différences au niveau de la syntaxe. La plupart travaillent en environnement graphique via l'utilisation de la librairie Tk. Les premiers sont relativement simples; le dernier constitue une application plus complète de gestion de bibliothèque (base Mysql, menus, ...).
Ce jeu fonctionne en mode texte. Il a été créé par conversion d'un programme AWK par le biais de l'utilitaire a2p (awk to perl) . Le principe est d'intervertir une suite de nombres afin de les reclasser dans l'ordre croissant.
Ce jeu de lettres transforme un mot quelconque en "javanais" en glissant entre une voyelle et une consonne la syllabe AV. Pour ceci, il fait appel à :
Ce jeu présente 9 cases sous forme de tableau 3 x 3. Chaque case (en fait un bouton) est soit verte soit rouge. En cliquant sur une case, la couleur de ses voisines change. Le but est d'obtenir toutes les cases vertes sauf la centrale. Les fonctionnalités suivantes sont nécessaires :
Le programme affiche un graphique offrant un bel aspect visuel. Il utilise principalement :
Ce programme constitue le menu de l'application qui permet d'appeler les exemples précédemment décrits. On utilise pour ceci les fonctions suivantes :
|
En général, les logiciels sont fournis sous forme de fichier xxxx.tar.gz. Pour installer, suivre la procédure ci-dessous (sans omettre de lire plus d'informations dans le fichier INSTALL fourni).
Fourni avec la plupart des distributions sous forme de tar.gz
Fourni avec la plupart des distributions sous forme de fichier tkxxxxx.tar.gz Un sous-répertoire démos contient de nombreux exemples d'applications.
Extension Mysql à Perl. Voir le site pour rechercher les extensions disponibles par langage. Il faut charger 2 logiciels :
Souvent fourni avec les distributions en rpm. Voir le site |