Perl/File::Find::Object

De Astillas.net
Módulo File::Find::Object
Versión 0.2.1-1
Uso Propósito general
Propósito Permite buscar archivos en el sistema operativo empleando orientación a objetos.


Referencia rápida

#!/usr/bin/perl

use File::Find::Object;

my %options = ( 
    depth     =>   1,
    nocrossfs =>   1,
    filter    =>   \&_filter_file,
    callback  =>   \&_on_every_returned_file,
  
);
my @directories = qw(
   /home/user/data1
   /home/user2/lib/data3
);

my $finder = File::Find::Object->new( \%options, @directories );

while (my $filename = $finder->next()) {
   do_something_with_file_name( $filename );
}

Funcionamiento

El funcionamiento básico del módulo consiste en crear un objeto con los parámetros de búsqueda y recuperar los resultados después de uno en uno (con el método next()).

El método new() admite varias opciones que modifican el funcionamiento del módulo. Las que he podido probar y he visto cómo funcionan son:

depth
Devuelve el contenido del directorio antes que el directorio por lo que éste no será retornado nunca.
nocrossfs
Activa o desactiva el cruce de sistemas de archivos.
filter
Define una función como filtro de archivos. Recibe como parámetro el archivo o el directorio en curso y según su valor de retorno el módulo se salta dicho elemento (valor falso) o lo incluye en la búsqueda (retorno verdadero).
callback
Define una función que será llamada (con el nombre de archivo como parámetro) con cada elemento encontrado que el módulo vaya a retornar al programa.