PERL Mise à jour du 07/08/2005 Par : Philippe Bancquart Objectifs Présentation et utilisation du langage PERL Initiation à ce langage Sommaire Présentation Son utilisation Atouts et défis d’aujourd’hui Organisation Modèle économique, création de valeur et performances Chiffres clés Success stories, exemples, satisfaction Direction Commerciale et Marketing Modèle PowerPoint - mise à jour 19 mai 2003 - page 1 0 Présentation 1 Utilisation 2 Partie 2 : les atouts et les défis d ’aujourd ’hui 3 Partie 3 : l ’organisation 4 Partie 4 : modèle économique, création de valeur et performances 5 Partie 5 : chiffres clés 6 Partie 6 : success stories, exemples, satisfaction Direction Commerciale et Marketing Modèle PowerPoint - mise à jour 19 mai 2003 - page 2 0 Présentation Qu’est ce que Perl ? P.E.R.L. signifie Practical Extraction and Report Lang Un langage de programmation, logiciel gratuit Un langage interprété, pas de compilation Chaque « script » nécessite d'avoir l'interpréteur Perl sur la machine pour s'exécuter. Portabilité : Perl existe sur la plupart des plateformes (Unix, NT, Windows, Mac,VMS, ...) Nombreuses librairies et utilitaires Simplicité et robustesse Direction Commerciale et Marketing Modèle PowerPoint - mise à jour 19 mai 2003 - page 3 Utilisation Manipuler des fichiers (notamment pour gérer plusieurs fichiers en même temps), Manipuler des textes (recherche, substitution), Manipuler des processus (notamment à travers le réseau). Générer, mettre à jour, analyser des fichiers HTML (CGI), Accès « universel » aux bases de données, Conversion de formats de fichiers. Ne pas utiliser pour interfaces interactives, calcul scientifiques, Perl n’est plus lié au monde UNIX Direction Commerciale et Marketing Modèle PowerPoint - mise à jour 19 mai 2003 - page 4 Synthèse Les variables commencent par $ on ne s’occupe pas du type. Les listes commencent par My $mon_fruit_prefere = 'kiwi'; my $prixkiwiKilo = 12; $prix = $prixkiwiKilo * 0.1 ; my $chaine = "100 grammes de $mon_fruit_prefere vaut $prix Euros"; print $chaine ; @chiffres = (1,2,3,4,5,6); @fruits = ('amande','fraise','cerise'); @alphabet = ('a'..'f'); @ch = @chiffres; print @alphabet, '_', @ch; @ @alphabet = ('a'..'z'); Les deux points signifient de "tant à tant" affectation @ch = @chiffres; on fait référence à un élément du tableau selon son indice par : $chiffres[1] $fruits[0] premier Direction Commerciale et Marketing Modèle PowerPoint - mise à jour 19 mai 2003 - page 5 Type de données. Nombre, classique , exemple 1.1 +, - ,* , /, ** (puissance), % (modulo) < , > , <= , >= , == ( égalité) != (différence) chaine ’L\’´ecole’ le \ devant ’ pour l’apostrophe ’c:\\windows\\system’ antislash doublées ’’ chaˆıne vide ’Bonjour \n’ le \n n’a pas de sens ici utiliser une double quote pour être interprété ’Bonjour’ Direction Commerciale et Marketing Modèle PowerPoint - mise à jour 19 mai 2003 - page 6 Direction Commerciale et Marketing Modèle PowerPoint - mise à jour 19 mai 2003 - page 7 Exemple de fichier Un commentaire # mon premier script Un message de bienvenu Création d’une variable $monFichier print "bonjour"; et on affecte le nom du fichier my que le fichier existe. $monFichier="testcpi.pl";Vérification Die : gestion des erreurs et affichage du code. if (!-e $monFichier) { Variable compteur, pas de gestion des types my $error = $!; Ouverture du fichier contenu dans la variable, F } est l’identifiant pour le repérer. my $i; || si erreur alors affichage open (F, $monFichier) || Tant que pas la fin fichier, lecture ligne à ligne die "Problème d'ouverture rangement dans la variable $ligne : $!" ; de la variable ligne while (my $ligne = <F>) {Affichage Incrémentation compteur print $ligne; Affichage message avec texte et variables $i++; mélangées le point fait concaténation. } print "Nombre de lignes : $i pour le fichier Fermeture fichier Direction Commerciale et Marketing .$monFichier"; Modèle PowerPoint - mise à jour 19 mai 2003 - page 8 0 Présentation 1 Partie 1 : historique 2 Partie 2 : les atouts et les défis d’aujourd’hui 3 Partie 3 : l ’organisation 4 Partie 4 : modèle économique, création de valeur et performances 5 Partie 5 : chiffres clés 6 Partie 6 : success stories, exemples, satisfaction Direction Commerciale et Marketing Modèle PowerPoint - mise à jour 19 mai 2003 - page 9 1 PERL : FICHIERS Pour écrire un fichier open(FILEHANDLE,">>nomdufichier"); print FILEHANDLE "Nom: ",$html->param('nom'),"\n"; print FILEHANDLE "--------------------------------------------------\n"; close FILEHANDLE; Ouverture en lecture : open(FILEHANDLE,"<nomdefichier"); @lignes = <FILEHANDLE>; Direction Commerciale et Marketing Modèle PowerPoint - mise à jour 19 mai 2003 - page 10 Exercices Fichiers Nous avons une structure XML et un fichier avec des données. L’objectif est de mettre les données dans les tags XML. Fichier structure <nom> ^comment NOM </nom> Fichier données ^comment NOM : Philippe Direction Commerciale et Marketing Modèle PowerPoint - mise à jour 19 mai 2003 - page 11 FICHIERS L'ouverture consiste à associer un descripteur de fichier (filehandle) à un fichier physique. open (FIC1,’monfichier’); # ouverture en lecture open (FIC2,'c:\\tmp\\truc’); # open (FIC3,’>toto’); # > pour ouverture en écriture open (FIC3,’>>titi’); # >> pour ouverture en ajout Vérification que tour se passe bien. On peut utiliser un die conditionnel pour traiter les valeurs de retour de open : open(FIC,’MonFichier’) || die("Pb d’ouverture\n"); Close(FIC); Direction Commerciale et Marketing Modèle PowerPoint - mise à jour 19 mai 2003 - page 12 Lecture Fichier Pour parcourir l’ensemble du fichier, rangement dans open (F, $fichier) || die "Problème pour ouvrir $fichier: $!"; while (my $ligne = <F>) { print $ligne; } close F; On range dans une variable $ligne = <FENT>; $reponse = <STDIN>; => lecture d'une ligne à l'écran La fin de ligne (retour-chariot) est lue également. Pour enlever cette fin de ligne il suffit d'utiliser la commande chop, chomp ou son équivalent : chomp On peut lire toutes les lignes d'un fichier dans un tableau (en une seule instruction) @lignes = <FENT>; Direction Commerciale et Marketing Modèle PowerPoint - mise à jour 19 mai 2003 - page 13 $_ Lecture standard 1. On effecture la lecture de l’entrée, et affiche le nombre de ligne. 2. On peut avoir plusieurs fichiers en entrées. Lire les lignes fichier e1 puis le e2 3. On peut tout lire en 1 instruction @lignes = <FILEHANDLE>; Ainsi $ligne[0] sera la première ligne, $ligne[1] sera la deuxième etc... 1. my $i=0; while (my $ligne = <>){ $i++; } print "nb $i " 2. @ARGV = ("e1.txt","e2.txt"); while ($ligne = <>){ print("$ligne"); } Direction Commerciale et Marketing Modèle PowerPoint - mise à jour 19 mai 2003 - page 14 1. Ensuite vous pouvez remplir le fichier avec vos variables et texte 2. On peut utiliser également sprintf avec les normes du C 1. open(FILEHANDLE,">>nomdufichier"); print FILEHANDLE "Nom: "$var \n"; print FILEHANDLE "-----------------\n"; Direction Commerciale et Marketing Modèle PowerPoint - mise à jour 19 mai 2003 - page 15