+--------------------+ --| Votre dose de Perl |-------------------------------------------------(MPM)-- +--------------------+ Malheureusement Benoit n'a pas pu finir la deuxième partie de sa présentation à la dernière réunion donc celle-ci à été annulée, faute de contenu. Ce mois-ci dans LJNB, vous retrouverez donc le contenu d'une ancienne réunion. "one-liners" par Luc St-Louis ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Luc à ramassé avec le temps une série de "one-liners" Perl ou de trucs pratico-pratique. Sans plus attendre, les voici accompagnés d'une courte explication. # Obtenir un tableau contenant un et un seul exemplaire des # éléments d'un second tableau. @uniques = grep {not $seen{$_}++} @foo; # Transformer les sauts de lignes de Unix à Mac. perl -i.bak -l15pe0 somefile # Transformer les sauts de lignes de Mac à Unix. perl -i.bak -015l12pe0 somefile # Compter le nombre de fois qu'un pattern apparaît dans une chaîne. $cnt = () = $str =~ /patt/g; # Régler à undef tous les éléments d'un hash, laissant les clés intactes. @hash{keys %hash} = (); # Faire la somme des éléments d'un tableau. Pas nécessairement # recommandé comme technique; il s'agit plutôt d'une curiosité. $somme = do {$" = "+"; eval "@array"}; # Lister tous les fichiers dans un répertoire et dans ses sous # répertoires (mais pas plus profond que ça). @files = grep -f, glob "* */*"; # Un here-doc avec des terminateurs constitués de lignes vierges. # Contient aussi un exemple d'expression évaluée dans une chaîne. my $result = ($cond ? << '' : << '') . << ""; True False Appended: ord('a') = @{[ ord 'a']}. # Lister les volumes montés et leur pourcentage d'utilisation. df | perl -lane 'print "$F[5] : $F[4]"' # On peut prendre une référence à un scalaire à des endroits surprenants. perl -lwe 'my $str_ref = \join "*", qw(a b c); print $$str_ref' Évidamment il faut avoir quelque base en Perl pour bien les comprendre, et surtout il faut prendre le temps de lire le code pour voir ce qu'il fait. Le mois prochain, nous allons (surement) avoir la suite tant attendu de mod_perl de Benoit Beausejour. Cette dose de Perl vous à été présenté par : Les Missionnaires Perl de Montréal (MPM) http://montreal.pm.org/