précédant | suivant | sommaire
exemple avec les fonctions de manipulation de listes map et grep
Voici un script qui fait appel aux fonctions map et grep. Ces deux fonctions crées une nouvelle liste.
@nw_list = grep($_ =~ /^doc/, @liste);
ce qui signifie:
foreach element(@LISTE) {
if (EXPR)
{
push @nw_list $element;
}
}
pour map c'est le même principe seulement map ne retourne pas
une sous-liste de LIST mais une nouvelle liste créée par
la modification de chaque element de la LIST par EXPR:
map(EXPR, LIST)
map applique EXPR à chaque element de LIST et pousse le résultat
dans une nouvelle list.
On pourrai dire que map créé une nouvelle liste issue
du résultat d'EXPR appliquer à tout les elements de LIST.
On pourrai dire que le résultat d'EXPR appliquer sur chaque
élément de LIST donne une nouvelle liste
exemple:
@nw_liste = map($_*2, @liste);
(2, 4, 6, 8) = map($_*2, (1, 2, 3, 4));
Voilà un petit script que vous pouvez placer directement dans
un fichier, le rendre executable par
chmod +x nom_du_fichier.pl
puis executer par:
./nom_du_fichier.pl
#!/usr/bin/perl # remd: exo avec les fonctions map avec format de sortie. # il tourne bien alain Adelmar <aadelmar@free.fr> format STDOUT_TOP = Page $<< Initial Double Quart Interet 4% ======= ====== ===== ========== . $i, $element; @ls_init = (1..40); @interet_4p100 = map(($_*4)/100, @ls_init); @ls_quart = map (($_*0.25), @ls_init); @ls_double = map($_*2, @ls_init); foreach $element(@ls_init) { write; $i++; } format STDOUT= @<<<<< @<<<<<< @<<<<<<< @<<<<<<< $ls_init[$i], $ls_double[$i], $ls_quart[$i], $interet_4p100[$i] . END;