URL: https://linuxfr.org/forums/programmation-python/posts/de-la-puissance-de-beep-pour-trouver-un-truc-simple-en-2-minut Title: de la puissance de (beep) pour trouver un truc simple en 2 minutes Authors: gc Date: 2004年07月08日T18:21:55+02:00 Tags: Score: 0 Je viens d'écrire un one-liner en Perl pour trouver la solution au problème suivant : lorsqu'un projet Java utilise ant pour le build, si la déclaration du package ne correspond pas au répertoire dans lequel est le fichier source, à chaque invocation de ant ce fichier sera recompilé ; mais comme ant ne montre pas ce qu'il compile avec détail, on ne sait pas quel fichier source est le fautif. Et hop : for i in `find -name *.java`; do perl -MMDK::Common -e 'my $f = $ARGV[0]; my ($pkg) = cat_($f) =~ /package (\S+);/; $f =~ s|^\./(.*)/\w+\.java|1ドル|; print "Fautif : $ARGV[0]" if length($f) != length($pkg)' $i; done Si je décompose chaque ligne : my $f = $ARGV[0]; #- obtient le nom du package my ($pkg) = cat_($f) =~ /^\s*package (\S+);/; #- enlève du chemin de recherche le nom du fichier et le ./ du début $f =~ s|^\./(.*)/\w+\.java|1ドル|; #- on doit obtenir deux chaînes de même longueur (l'une avec des . et l'autre avec des / pour séparer chaque niveau de répertoire mais on s'en fout) si le package est correct print "---> $ARGV[0]" if length($f) != length($pkg); Donc, bon, voilà, c'est pour troller un peu : je m'émerveille que cette merveille de Perl m'ait permis de faire cela en 2 ou 3 minutes, et j'aimerais que la floppée d'adorateurs de Python me montrent comment ils l'auraient fait avec leur langage : je pense que ce sera bien plus long et plus chiant en Python, mais prouvez-moi que je me trompe !

AltStyle によって変換されたページ (->オリジナル) /