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 Les Tableaux Un tableau est une structure de données indicée Un tableau contient une liste de variables scalaires On appelle dimension d’un tableau le nombre de ses éléments Les Tableaux (2) Exemples #! / u s r / b i n / p e r l # Jouons avec l e s t a b l e a u x use s t r i c t ; use warnings ; u s e Data : : Dumper ; my @tab ; #D e c l a r a t i o n @tab = ( ) ; #D e c l a r a t i o n d ’ un t a b l e a u v i d e @tab = ( 1 , ’ e ’ , ” m a c h i n e ” , −4); #D e c l a r a t i o n e t a f f e c t a t i o n p r i n t $ t a b [ 2 ] , ”\n” ; #A c c e s a l ’ e l e m e n t d ’ i n d i c e 2 ( m a c h i n e ) $ t a b [ 2 ] = ” machin ” ; #M o d i f i c a t i o n de l a v a l e u r de l ’ e l e m e n t d ’ i n d i c e 2 my $ d i m e n s i o n = s c a l a r ( @tab ) ; #R e n v o i e l e nombre d ’ e l e m e n t s du t a b l e a u f o r e a c h my $ e l e m e n t ( @tab ){ #P a r c o u r s du t a b l e a u p r i n t $ e l e m e n t , ”\n” ; } p r i n t Dumper @tab ; #”dump” du t a b l e a u Les Tableaux (fonctions) push Ajoute un ou plusieurs éléments à la fin d’un tableau (à droite) push(@tab, ’essai’); shift Supprime et renvoie le premier élément d’un tableau $elem = shift(@tab); unshift Ajoute un ou plusieurs éléments au début d’un tableau (à gauche) unshift(@tab, ’essai’); pop Supprime et renvoie le dernier élément d’un tableau $elem = pop(@tab); splice Supprime du tableau le nombre d’éléments indiqué par le 3ème paramètre à partir de l’indice indiqué par le 2ème paramètre splice(@tab, 2, 1); Les Tableaux (fonctions 2) join Renvoie les éléments du tableau séparés par un caractère de séparation print join(";", @tab); split Renvoie la liste des éléments de la chaı̂ne de caractères délimités par un séparateur (regex) @tab = split(/[,;]/, "ainsi;font,font,font,les,petites,marionnettes" ); sort Renvoie le contenu du tableau trié (tri alphanumérique par défaut) @sorted tab = sort(@tab); grep Renvoie la liste d’éléments correpondant au critère du filtre (regex) @res = grep(/[A-Z][a-zA-z]+/, @tab); Exercices Jet de mots Écrivez un script perl qui reçoit en argument une liste de mots séparés par des espaces et les renvoie dans le désordre (ordre aléatoire). Découpage Écrivez un script perl qui découpe en mots le fichier bill-of-rights.txt.