Perl / Tk Valid XHTML 1.1Cette page est conforme à la norme CSS!Mise à jour 12-2001
SOMMAIRE

Présentation
    Préambule
    Description du fonctionnement
Les exemples détaillés
Les outils et liens
Télécharger les exemples
PRESENTATIONRetour en haut de page

Préambule

PERL est un langage extrèmement répandu qui, grâce à ses extensions multiples, trouve son usage dans de nombreuses applications.
  • langage de shell (en écran de commande),
  • langage de script pour Internet, côté serveur ou navigateur,
  • base de données (Mysql, PostGre, ...),
  • interface graphique (notamment avec Tk)
De plus, il est disponible sous Linux mais aussi sous Windows, ce qui en fait un langage universel.
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).

Description du fonctionnement

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 :
  • pack,
    qui dispose les widgets les uns à la suite des autres, selon l'espace disponible,
  • place,
    indique les positions x,y dans le toplevel,
  • grid,
    les dispose sous forme d'un tableau en lignes et colonnes.
Les widgets initialisés, l'affichage du tout est réalisé par l'appel obligatoire à la fonction MainLoop;.

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;.
  • exécution de requêtes
    Toutes les requêtes select, insert, delete, update sont utilisables.
  • traitement ligne à ligne
    Un lot de données peut être traité ligne par ligne. Chaque ligne est fournie sous forme d'une variable; des fonctions permettent de réaliser l'éclatement de cette ligne en autant de champs que définis dans la table.

LES EXEMPLES DETAILLESRetour en haut de page

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, ...).

Inversion (perlinv1) Suiv.

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.

Javanais (perljava) Préc.Suiv.

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 à :
  • boutons de commandes OK et Quitter,
  • zone de texte,
  • traitement de chaînes de caractères (longueur, sous-chaîne, concaténation, majuscules),
  • définition d'une fonction avec valeur de retour.

Jeu des cases (perlcases) Préc.Suiv.

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 :
  • les boutons sont créés dynamiquement lors de l'éxecution et non pré-définis : les instructions de définition sont composées sous forme de chaînes puis exécutées par eval,
  • variables globales, disponibles dans toutes les fonctions du programme,
  • définition de fonctions avec réception de paramètres.

Tracé de graphe (perlgraph) Préc.Suiv.

Le programme affiche un graphique offrant un bel aspect visuel.

Il utilise principalement :
  • un canvas pour tracer le graphe,
  • des boutons radio,
  • les fonctions mathématiques sin et cos,
  • le tracé de lignes et de rectangles.

Le menu (perlmenu) Préc.

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 :
  • widgets barres de menus
    (avec touches de raccourci),
  • bind pour définir des événements clavier
    touche Entrée sur un bouton qu'il faut assimiler à un clic,
  • appel d'un autre programme
    en attendant la fin du programme appelé

LES OUTILS ET LIENSRetour en haut de page

Chargement et installation Suiv.

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).
  • gunzip xxxx
  • tar -xvf xxxx.tar
  • perl Makefile.PL
  • make
  • make test
  • make install

PERL Préc.Suiv.

Fourni avec la plupart des distributions sous forme de tar.gz


PERL/TK Préc.Suiv.

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.


Perl et Sql Préc.Suiv.

Extension Mysql à Perl.
Voir le site pour rechercher les extensions disponibles par langage.

Il faut charger 2 logiciels :
  • DBI (fichier DBIxxxx.tar.gz),
  • Mysql pour Perl (fichier perl-Msql-Mysql-xxxx.tar.gz

Mysql Préc.

Souvent fourni avec les distributions en rpm.
Voir le site