Skip to content

Perl

Perl operator

Standard  Générique    Signification   Interpolation
        ''       q{}         Littérale            non
        ""      qq{}         Littérale            oui
        ``      qx{}          Commande            oui (sauf si délimiteur '')
                qw{}        Liste de mots         non
        //       m{}   Reconnaissance de motif    oui (sauf si délimiteur '')
                qr{}           Motif              oui (sauf si délimiteur '')
                 s{}{}       Substitution         oui (sauf si délimiteur '')
                tr{}{}     Translittération       non (voir plus bas)

\t          tabulation             (HT, TAB)
\n          nouvelle ligne         (LF, NL)
\r          retour chariot         (CR)
\f          page suivante          (FF)
\a          alarme (bip)           (BEL)
\e          escape                 (ESC)
\033        caractère en octal     (ESC)
\x1B        caractère hexadécimal  (ESC)
\x{236a}    caractère hexadécimal long (SMILEY)
\c[         caractère de contrôle  (ESC)
\N{nom}     caractère nommé

\l          converti en minuscule le caractère suivant
\u          converti en majuscule le caractère suivant
\L          converti en minuscule jusqu'au prochain \E
\U          converti en majuscule jusqu'au prochain \E
\E          fin de modification de casse
\Q          désactive les méta-caractères de motif jusqu'au prochain \E
````

## Snippet  

### Recherche d'une occurence dans un tableau  

It depends on what you want the search to do:

if you want to find all matches, use the built-in grep:  
```perl     
    my @matches = grep { /pattern/ } @list_of_strings;

if you want to find the first match, use first in List::Util:

    use List::Util 'first';
    my $match = first { /pattern/ } @list_of_strings;

if you want to find the count of all matches, use true in List::MoreUtils:

    use List::MoreUtils 'true';
    my $count = true { /pattern/ } @list_of_strings;

if you want to know the index of the first match, use first_index in List::MoreUtils:

    use List::MoreUtils 'first_index';
    my $index = first_index { /pattern/ } @list_of_strings;

if you want to simply know if there was a match, but you don’t care which element it was or its value, use any in List::MoreUtils:

    use List::MoreUtils 'any';
    my $match_found = any { /pattern/ } @list_of_strings;

Lister les doublons ou les uniques dans un tableau

    my %seen;
    my @doublons = grep {++$seen{$_}==2} @liste

    my %seen;
    my @unique = grep {++$seen{$_}==1} @liste