Langages de script - Perl - M2 Pro
Transcription
Langages de script - Perl - M2 Pro
Langages de script - Perl M2 Pro - 2015/2016 Clément Plancq [email protected] LaTTiCe 23 sept 2015 Présentation de Perl (1) Perl (Practical extraction and report language) Qu’est-ce que c’est ? Langage créé en 1987 par Larry Wall Réunit le meilleur de C, sed, awk et des commandes Unix Langage interprété Multiplateforme (interpréteur disponible pour de nombreux OS) Présentation de Perl (2) Pourquoi Perl ? Nombreuses utilisations dont traitement des chaı̂nes de caractères Support des expressions régulières et Unicode Langage à la syntaxe simple et rapide à écrire Nombreux modules existants (voir CPAN) Hello world hello.pl #! / u s r / b i n / p e r l use s t r i c t ; use w a r n i n g s ; p r i n t ” H e l l o World \n” ; Appel du script en ligne de commandes : > perl hello.pl ou > chmod u+x hello.pl > ./hello.pl Syntaxe (1) Un script perl est composé d’instructions et de commentaires Une instruction se termine par un ; Un commentaire commence par un # exemple #! / u s r / b i n / p e r l use s t r i c t ; use w a r n i n g s ; p r i n t ” H e l l o World \n” ; #C e c i e s t une i n s t r u c t i o n #C e c i e s t un c o m m e n t a i r e Syntaxe (2) : fonctions print est une fonction, les fonctions s’écrivent de la manière suivante : nom fonction(arg1, arg2, ..); ou $var = nom fonction(arg1, arg2, ..); Perl dispose d’une grande bibliothèque de fonctions, on accède à leur documentation avec la commande suivante : > perldoc -f nom fonction hello2.pl #! / u s r / b i n / p e r l use s t r i c t ; use w a r n i n g s ; p r i n t ” H e l l o World \n” ; #C e c i e s t une i n s t r u c t i o n #C e c i e s t un c o m m e n t a i r e Variable (1) Un nom de variable est précédé d’un $, il doit être écrit avec les caractères suivants : [a-zA-Z0-9 ] Le caractère = est le signe d’affectation, il s’emploie de la manière suivante : nom de variable = valeur; hello3.pl #! / u s r / b i n / p e r l use s t r i c t ; use w a r n i n g s ; my $name = ” Clement ” ; p r i n t ( ” H e l l o $name\n” ) ; Variable (2) Perl est un langage non typé : une variable peut recevoir différents types de données (entiers, flottants, caractère, chaı̂nes de caractères) hello4.pl #! / u s r / b i n / p e r l use s t r i c t ; use w a r n i n g s ; my $name = ” Clement ” ; p r i n t ” H e l l o $name\n” ; $name = 1 2 ; p r i n t ” H e l l o $name\n” ; $name = ’ c ’ ; p r i n t ” H e l l o $name\n” ; Opérateurs Dans nom de variable = valeur; la valeur peut être le résultat d’une opération Opérateurs arithmétiques Opérateurs sur chaı̂nes de caractères + addition - soustraction * multiplication / division % modulo (reste de la division) . concaténation de chaı̂nes Opérateurs booléens && et (conjonction) || ou (disjonction) ! non (négation) Opérateurs op.pl #! / u s r / b i n / p e r l # Usage d e s o p e r a t e u r s en P e r l use s t r i c t ; use w a r n i n g s ; $var = 2 + 4; $var2 = $var − 1; $var = 4 / 3; $reste = 4 % 3; p r i n t ” 4 / 3 donne $ v a r , l e r e s t e e s t $ r e s t e \n” ; $mess age = ” B o n j o u r ” ; $name = ” Clement ” ; $ p h r a s e = $me ssag e . ” ” . $name ; p r i n t ” $ p h r a s e \n” ; Structures conditionnelles Structures simples Structures imbriquées if(condition){ instruction; } else{ default_instruction; } if(condition){ if(condition2){ instruction; } } else{ instruction2; } if(condition){ instruction1; } elsif(condition2){ instruction2; Opérateurs de comparaison Comparaison de valeurs numériques Comparaison de chaı̂nes de caractères == eq != ne < ou <= lt > ou >= gt Exercices (1) 1. Complétez #! / u s r / b i n / p e r l use s t r i c t ; use w a r n i n g s ; ## D e v i n e z mon age my $age = 3 4 ; p r i n t ” D e v i n e z q u e l e s t mon age . \ n” ; p r i n t ” E n t r e z un c h i f f r e : ” ; my $ a g e e n t e r = <STDIN>; chomp $ a g e e n t e r ; i f ( $age == $ a g e e n t e r ) { p r i n t ” Bravo ! Vous a v e z t r o u v e \n” ; p r i n t ” J ’ a i $age a n s . \ n” ; } else . . . Exercices (2) 2. Calculatrice Écrivez un script perl qui implémente les quatre opérations arithmétiques. Les opérandes et l’opérateur sont demandés à l’utilisateur et lus sur STDIN. Références man perlintro http://perldoc.perl.org http://sylvain.lhullier.org/publications/perl.html Modern Perl