PERL

Nous donnons ici quelques rudiments du langage Perl afin que vous puissiez vous en faire une idée et écrire par vous même quelques scripts simples. Nous vous invitons à poursuivre votre formation à l'aide d'un livre où à l'aide de manuels en ligne. Il est aussi possible et même fortement conseillé d'installer un interprêteur Perl sur votre PC, ils sont gratuits. On en trouve à http://www.perl.hip.com . Un fichier d'installation de Perl5 pour i86 se trouve également à l'adresse /pub/perl/110-i86.zip du serveur BRUNETTE.

Voici quelques URL utiles en rapport avec PERL :  UF/NA Perl Archive , un manuel Perl fonctionnant comme un moteur de recherche, Perl FAQ, un manuel Perl HTML, Perl Home Page.

Voici aussi les références du livre dont je me suis largement inspiré pour écrire cette introduction :
Perl5 by examples. David Medinets. Que1996.

Peut-être avez vous Perl déjà installé sur votre PC ? Ouvrez l'invite de commande dos et taper perl -v. Si Perl est déjà installé vous serez alors qu'elle en est la version installée. Dans la suite nous traitons de la version 5 de Perl.

N'oubliez pas qu'un manuel HTML en anglais est offert avec Perl5.

Script Perl

Un script Perl consiste en un fichier texte contenant une série de commandes. On veille à donner l'extension .pl aux scripts Perls. L'exécution de scripts Perl se fait en tapant à l'invite de commande l'instruction
perl script.pl,

suivie de return.

Ci-dessous un exemple de script :

#Un commentaire print ("Une ligne.\n");
#Un autre commentaire
print 'Salut les gens \n';
print "\n";
print 'Salut les z\'enfants';
print "\n\n\n";
print "Bonjour \U les schtroumpfs du nord. \E Bonsoir \L LEs ScHtroumpfs du Sud. \E \\ \n";
print "abc\udefg\n";
print "\tLe meilleur ami de l\'homme.\n";
print "Voilà " . "le bon passage." . "\n";
print ("Le chiffre ", 1, '.', "La somme de 2 et de 1 = ", 1+2, "\n");
print (20, " ",012," ", 0xA2 + 0x1B," ", 5.45, " ",5.2E-2,"\n");
print (1,2,5..10);
print ("\n", "A", "B".."E","\n");

Notons de ce première exemple que Perl manipule des chaînes littérales de caractères entre ', des nombres (réels, entiers, octaux et hexadécimaux), des chaînes de caractères et des commandes \x interprétées entre ", ainsi que des vecteurs mixtes.

Voici un autre script intéressant qui montre qu'il est indispensable de bien protéger l'accès en écriture d'un CGI :

print `dir`;

Les variables

Perl a 3 types de variables : les scalaires, les vecteurs, et les vecteurs associatifs.

Les scalaires

Les scalaires peuvent prendre une chaîne de caractères, ou un nombre pour valeur. Les scalaires sont toujours préfixés par le caractère $.

Voici un exemple d'utilisation de scalaires :

$nombre = 5;
$chaine = 'Salut';
$chaine_2 = "Salut\n";
print $nombre + 5;
print "\n";
print ($chaine,' ',$chaine_2,"\n");

Les vecteurs

On peut construire en Perl des vecteurs composés de scalaire. Les vecteurs sont toujours préfixés par le caractère @.

Voici un exemple d'utilisation de vecteurs:

@VecteurDeNombres = (1,2,45,65,2E-21);
@VecteurVide=();
@VecteurMixte=(1..5,"trace");
@GrandVecteur = (@VecteurDeNombres,@VecteurMixte);
print @VecteurMixte[0]; print "\n";
print @VecteurMixte[5]; print "\n";
print "$VecteurDeNombres[-1] $VecteurDeNombres[-2] \n";
print @GrandVecteur; print "\n";
$Taille = @GrandVecteur;
print ("La taille du grand vecteur est de ", $Taille, "\n");

Noter la façon de calculer la taille d'un vecteur et l'utilisation des index négatifs.

Les vecteurs associatifs

Les vecteurs associatifs sont des vecteurs indexés par des scalaires. Les vecteurs associatifs sont toujours préfixés par le caractère %.

Voici quelques exemples d'utilisation de vecteurs associatifs :

%VecteurAssociatif = ("Bill", "3 Mai","Pierre","6 juin");
$VecteurAssociatif{"Sophie"}="6 avril";
print ("La date d\'anniversaire de Pierre est le ",$VecteurAssociatif{"Pierre"},".\n");
print ("Celle de Sophie : ",$VecteurAssociatif{"Sophie"},".");

Opérations d'extraction sur les vecteurs

Il est possible d'extraire des parties de vecteurs vers d'autres vecteurs ou vers des scalaires.

Voici un exemple de script illustrant ces possibilités :

@Vecteur = ("Un", "Deux", "Trois", "Quatre");
@Demi=@Vecteur[0,1];
($Troisieme, $Quatrieme) = @Vecteur[2,3];

print "\@Vecteur = @Vecteur \n";
print("\@Demi[0] = @Demi[0] \@Demi[1]=@Demi[1]\n");
print("\$Troisieme = $Troisieme \$Quatrieme = $Quatrieme\n");

@Vecteur[0,3] = @Vecteur[3,0];
print "\@Vecteur = @Vecteur\n";

L'interpolation de variable

Si l'on imprime un vecteur les éléments de ce vecteurs apparaissent collés les uns aux autres. Il y a moyen de pallier à ce petit inconvénient de la façon suivante :

@Vecteur = (1..20);
print @Vecteur; print "\n";
print "@Vecteur\n";

La variable spéciale $" contient la chaîne de caractère qui sépare les différents éléments d'un vecteur à l'impression. Par défaut elle prend pour valeur un caractère blanc (' ').

Voici un exemple d'utilisation de la variable spéciale $" :

$" = "!";
@Vecteur = (1..20);
print "@Vecteur\n";


suite-index