Si, algo parecido estoy haciendo. Abro los ficheros con las palabras que quiero buscar, las guardo todas en un array y voy recorriendo las carpetas a analizar recursivamente. Luego iré guardando las ocurrencias en una tabla y ya miraré como sacar el html de allí.
Sin embargo estoy teniendo un problema para recorrer recursivamente las carpetas.
Código:
#######################################################################
## procesaFicheros: Recibe un directorio
## Recorre el arbol de directorios recursivamente ##
#######################################################################
sub procesaFicheros(){
my $dir=shift;
my @sourcefiles;
if (opendir(DIRH,"$dir")){
@sourcefiles=readdir(DIRH);
closedir DIRH;
foreach (@sourcefiles){
next if ($_ eq "." || $_ eq "..");
#if (!($prueba =~ /test/)){
# PROCESAR FICHERO
# print "$_\n";
&analizaFichero("$_");
#}
procesaFicheros("$dir/$_") if (-d "$dir/$_" && ! -l "$dir/$_");
}
}else{
print "Error leyendo el directorio $dir\n";
}
}
#######################################################################
## analizaFichero: Recibe un fichero ##
## Analiza un fichero buscando ocurrencias de palabras elegidas ##
#######################################################################
sub analizaFichero{
print "Entrando en analizaFichero para fichero ".$_."\n";
my $counter = 0;
if (!(-d "$_[0]")){
open FICHERO, $_[0] or die "No existe ".$fichero;
while (<FICHERO>)
{
print $_;
# Legal
foreach $word (@legalwords_list){
$counter++;
if ($_=~/$word/){
print $word." encontrada en línea ".$counter." en fichero ".$_[0]."\tCategoría: LEGAL";
}
}
}
close FICHERO;
}
}
No me llega a leer todo, alguien sabe por qué puede ser?