précédent | suivant | sommaire

Perl (b-a-ba)

_zonly_______________________________________________________________________________

Le langage accessible par le plus grand nombre car, tous les langages que vous aurez essayés avant, vous servirons,  il tourne sur tout les OS.  Puissamment efficace, pratique et rapide, gratos, c'est le langage avec un grand "P " d'ailleurs ceux qui en ont eu vent en pètent de joie.

aadelmar@free.fr
Ce document est réservé aux pré-débutants et n'apprendra rien aux autres, je le conçois pour ce faire une idée et pour guider les débutants dans leurs premiers programmes.

C'est quoi Perl ?

Perl - "Pratical Extraction and Report Language"
Perl se présente sous la forme d'un l'interpréteur de commandes tellement sophistiqué et riche qu'il est reconnu comme langage informatique il a été conçu par Larry Wall  (un drôle de bonhomme).
En effet, Perl regroupe toutes les caractéristiques des shell existants (sh, csh, bash) mais aussi pas mal de ceux du C, de sed avec awk, et d'autres langages que je ne connais même pas.  Du fait même qu'il regroupe toutes ces caractéristiques, les meilleures de chaque langages, à mon avis, il est capable de tout, je m'explique:
Vous pouvez faire grâce à Perl tout ce qui peut être fait avec un ordinateur, même jusqu'à créer votre propre environnement (mais c'est une autre histoire).
Ces capacités sont les votre et vous serai limité que par vos propres limites, tant sont langage est riches et ses possibilités sont immenses.
Vous pouvez aussi vous en servir comme d'un utilitaire, c'est souvent le cas, pour le plus grand nombre. Il vous servira pour manipuler des textes, des documents, des données. Pour rendre des documents compatible avec certains programmes bornés ou pour vous passer justement de ces programmes en en écrivant des plus adaptés à vos besoins.
Besoins qui seront sollicités par de nouvelles perspectives, que Perl vous aura fait entrevoir.  (Tel est en général la démarche clopinante de l'apprentissage du Perliste amateur) .
Si vous voulez bien je vais vous montrer comment on peut appréhender les premières manipulations, scripts, enfin quoi, le b-a-ba sur les deux systèmes qui équipe 99% des PC.,  libre à vous de pousser plus avant votre apprentissage.
 

Début début (petit éditeur, ouvrir un fichier, etc....)

Sur Linux ou Unix-like:
Si vous avez une distribution Linux, Perl est déjà installé dans votre ordinateur dans le répertoire: /usr/lib/perl (ou pas loin).
Prenez un papier virtuel, enfin n'importe quel éditeur de texte (emacs, gvim, gedit, xedit ... n'importe lequel) puis comme on clique sur une souris pour activer un icône, on va appeler Perl (par son binaire de nom) : par la formule magique que l'on écrira toujours à la première ligne (endroit ou les interpréteurs de commandes cherchent les appartenances)  :

#!/usr/bin/perl -w
cette ligne (appellée shebang) sera lu comme un commentaire mais spécial puisqu'il appelle perl avec l'option w (qui préviens l'utilisateur sur les éventuelles fautes . Pour voir la liste des options possible tapez:  "man perl"  ou "perldoc perl" sur  n'importe quelle console ).

$x = "x" x 10;
cette deuxième ligne et là juste pour faire jolie, mais voyez comment on assigne une valeur à une variable, d'abord on la nome par son nom (là x) précédé du signe $  qui signifie que c'est une variable scalaire (c'est à dire quelle ne contiendra qu'une seul valeur, contrairement à la variable liste @liste ou au tableau associatif qui eux contienne plusieurs valeurs).
Le signe = et bien veut dire égale, il veut dire aussi que l'on assigne ce qui suit le signe égale à la variable qui est avant (à gauche, comme en C).
Le signe "x" que l'on aurai pu écrire 'x' signifie que l'on fait référence à la lettre x (alphabétique) .
Le  signe x qui suit et un opérateur d'itération, c'est à dire combien de fois on devra réitérer le signe de gauche.
et le 10 qui signifie 10 (l'opérande).
$x = "x" x 10;        ..........  équivaut à .........       xxxxxxxxxx

print "$x Editeur Perso $x\nBonjour, vous êtes sur votre éditeur personnel\ntapez Crl-d pour sortir, bonne journée\n$x  $x\n";
Voilà une ligne qui apparaîtra à l'écran grâce à la fonction print, mais elle apparaîtra avec les valeurs quelle contient, c'est à dire:

xxxxxxxxxx Éditeur Perso xxxxxxxxxx
Bonjour, vous êtes sur votre éditeur personnel
tapez Ctrl-d pour sortir
xxxxxxxxxx  xxxxxxxxxx

 Perl lit la phrase et l'écrit au fur et à mesure, le signe \n étant le saut de ligne,  il remplace les variable par ce quelle représente.

@contenu = <STDIN>;
Voilà le coeur de l'éditeur, une simple petite ligne qui signifie que vous assigné STDIN (l'organe d'entrée (le clavier)) à une variable liste @contenu qui aura autant de paragraphe que le nombre de fois que vous taperai sur "Entrée". Elle stockera donc toutes les phrase les unes derrière les autre.

Comme vous avez prévenu l'utilisateur qu'en tapant Ctrl-d ( le signal de fin de fichier) il sortirai de l'éditeur.
Maintenant on à plus qu'a mettre le contenu dans un fichier et à demander à l'utilisateur si il veux bien lui donner un nom en aidant les plus fatigués (ça sert bien à ça l'informatique!).

print "\n\nvoulez vous donner un nom a votre travail?\n";
chomp($resp = <STDIN>);
Dans la première phrase on demande a l'utilisateur si il veut sauver son travail et dans la deuxième on écoute sa réponse .
chomp est une fonction qui ôte le dernier élément de la saisie, en ce qui nous concerne c'est le signe " \n" (Enter, qui est le saut de ligne) que l'utilisateur aura entré avec la touche valider (Enter) qui est aussi le saut de ligne.
Donc on enlève le saut de ligne de la réponse que l'on a assigné à <STDIN> qui est l'ensemble des touches entrées avant d'avoir validé (c'est à dire le texte) comme on l'à déjà vu.
 

Ouvrir un fichier

 Pour ouvrir un fichier en Perl c'est facile il suffit de le nommer en lui assignant un filehandel, c'est à dire un descripteur de fichier.
Exemple pour ouvrir un fichier note.log (en lecture):
my $file = "note.log";
open FIN, "$file" or die "Ouverture de $file impossible $!";
ou
open NOTE, "<note.log" or die "pb ouverture avec note.log $!";

# explication la fonction open ouvre le fichier appelé note.log en lui assignant le filehandel NOTE (à partir de maintenant NOTE représentera le fichier note.log).  Le signe < indique la lecture seule.  On ajoutera un controle afin de retourné une erreur et une phrase si ce fichier ne s'ouvre pas par or die "pb  ouverture note.log $!"

autre exemple mais en écriture c'est à dire que Perl créé le fichier si celui-ci n'existe pas:

my $file = "note.log";
open FIN, ">$file" or die "Ouverture de $file impossible $!";
ou
open NOTE, ">note.log" or die "pb ouverture avec note.log $!";

# explication la fonction open ouvre le fichier appelé note.log en lui assignant le filehandel NOTE (à partir de maintenant NOTE représentera le fichier note.log).  Le signe > indique l'écriture.  On ajoutera un controle afin de retourné une erreur et une phrase si ce fichier ne s'ouvre pas par or die "pb  ouverture note.log $!"

on peut également ouvrir un fichier existant pour y ajouter quelques chose et ce par le doublement du signe >> ou << lecture plus ajout ou écriture plus ajout.

Sur MS Windows9x (ou autre dans la famille petit mou):
Si vous n'avez que Microsoft, installé le de préférence sur le répertoire racine du premier Disque Dur => C:\Perl
le paquetage logiciel s'appellera ActivePerl-5.6.msi , mais vous aurez pris soin de télécharger d'abord instmsi.exe (l'installeur pour MS Windows xx) et quelques autre comme DCOM95.exe  msvcrt .exe suivant quelle version vous avez de Windows.
Mais tout est expliqué sur le site de téléchargement ActiveState le seul problème c'est en anglais US (mais pas d'affolement c'est facile à lire, achtung, chaque version à sa spécificité (ne pas télécharger les package ce terminant par "tar.gz"  |:))

haut


précédent | suivant | sommaire