bonsoir,
pouvez vous me dire a quoi sert cette fonction et les caractères utilisé le "." et le "+"
grep { /.+/ }
merci pour votre attention
bonsoir,
pouvez vous me dire a quoi sert cette fonction et les caractères utilisé le "." et le "+"
grep { /.+/ }
merci pour votre attention
Telle quelle, cette instruction ne fait rien. Il faudrait donner la ligne entière, le contexte.
La fonction grep prend en entrée une liste d’éléments (ou un tableau) et renvoie un autre tableau dans lequel les éléments ont été filtrés par le code dans le bloc après le grep.
Par exemple, le script uniligne suivant à la ligne de commande unix:
génère d'abord une liste de chiffres de 1 à 10; puis le grep filtre tous les éléments divisibles par 2 (le bloc {$_ % 2} renvoie 0, donc faux, pour les éléments divisibles par 2) et renvoie donc une liste de chiffres impairs entre 1 et 10; enfin, le 'print join " "' imprime les éléments renvoyés par le grep en ajoutant des espaces entre chaque élément (ce qui imprime donc "1 3 5 7 9").
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $ perl -e 'print join " ", grep {$_ % 2} 1..10' 1 3 5 7 9
Dans ton cas, le bloc de code associé au grep utilise une expression régulière: '.' reconnaît un caractère quelconque (sauf le caractère de saut de ligne) et le '+' dit qu'il en faut au moins 1. Bref, /.+/ renvoie vrai s'il y a au moins un caractère (autre que saut de ligne) dans la chaîne examinée et faux dans le cas contraire. Et le grep avec ce bloc de caractère filtre les éléments vides de la liste en entrée et ne renvoie que les éléments non vides.
Par exemple, si je définis le tableau @c comme suit:
ce tableau contient maintenant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part my @c = (1, 5, "toto", 7, "", 36, "titi", "", 42);
Les éléments d'indices 4 et 7 sont vides.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 0 1 1 5 2 'toto' 3 7 4 '' 5 36 6 'titi' 7 '' 8 42
Si maintenant je fais l'instruction suivante:
le tableau @d contient:
Code : Sélectionner tout - Visualiser dans une fenêtre à part my @d = grep { /.+/ } @c;
Les deux éléments vides ont été éliminés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 0 1 1 5 2 'toto' 3 7 4 36 5 'titi' 6 42
- La programmation fonctionnelle en Perl : 1. Les opérateurs de liste; 2. Les fonctions d'ordre supérieur; 3. Étendre le langage.
- Comment utiliser des décorateurs en Perl: Un tutoriel pour changer le comportement d'une fonction sans en modifier le code source
- De Perl 5 à Perl 6 : 1. Les bases; 2. Les nouveautés; 3. Approfondissements; 4. Annexe 1: Ce qui change entre Perl 5 et Perl 6; Annexe 2: Les nouveautés de Perl 6.
- Les regex et grammaires de Perl 6
- Objets, classes et rôles en Perl 6 - Tutoriel de programmation orientée objet
- Tour d'horizon du nouveau langage Perl 6
Partager