Oui, c'est File::Find que je voulais dire
Dans ton cas, la variante File::Find::Rule serait plus adaptée avec qque chose du genre
Code :
#!/usr/bin/perl use strictures; # ou use strict; use warnings; si le module strictures n'est pas installé dans votre config use File::Find::Rule; my $rule = File::Find::Rule->new; $rule->or ($rule->new->directory->name ( qr/test/i )->prune->discard, $rule->new ); my @files = $rule->in('.'); ...
|
ou $rule->or(A, B); on va tenter d'appliquer les règles A ou B (et si on applique A, on essaye pas d'appliquer B, c'est important ici)
Avec $rule->new->directory->name( qr/test/i )->prune->discard on crée une nouvelle règle qui pour tout nom passé en entrée qui est un nom de répertoire vérifiant la regexp /test/ a pour action de ne pas aller dans le sous répertoire (prune) ni de mettre en sortie le nom en cours (discard).
Avec $rule->new on crée une nouvelle règle vide qui met en sortie tout nom qui lui est passé en entrée.
Donc pour tout nom passé à la règle de base qui a pas été matché (et donc exclus) par la première règle, on copie a l'identique en sortie.
A+,
Message édité par gilou le 14-10-2014 à 12:50:45
---------------
There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! --