Jue Ago 18, 2005 6:31 am
|
 |
monoswim
Vive para Perl en Español

|
Registrado: 18 Nov 2003
Mensajes: 716
Ubicación: Buenos Aires
|
|
| Buscador de contenido de archivos... |
|
|
Hola gente, tengo el siguiente buscador que me busca en el contenido de archivos que haya en un directorio...
abro el contenido del directorio, por cada archivo lo abre y lo coloca un un @array y luego busca en el con la función grep
my @ok = grep {/$input_data{'string'}/} @lines;
Pero no se si será mejor hacer un while para no cargar todo el archivo en memoria e ir evaluando cada una de las líneas...
while (my $line = <DATA>)
Que me recomiendan ?
Los archivos son del tipo XML y tendrán aproximadamente unas 50 líneas...Y en cada directorio habrá unos 20 artículos...
Saludos |
|
|
|

Jue Ago 18, 2005 6:50 am
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
|
|
|
|
|
Hola:
Ni siquiera tienes que hacer el while, has el grep directamente con el archivo:
| Código: |
| my @ok = grep {/$input_data{'string'}/} <DATA>; |
SALUDOS |
|
Jue Ago 18, 2005 8:27 am
|
 |
monoswim
Vive para Perl en Español

|
Registrado: 18 Nov 2003
Mensajes: 716
Ubicación: Buenos Aires
|
|
|
|
|
jeje, no se me había ocurrido esa solucion...De perlas !!!
Oye kidd, con lo de File::Find tuve el mismo problema que con mi función, reinicié el apache y problema resuelto...jeje así que sigo sin usar módulos...jajaja
Saludos y mil gracias !!!! |
|
Jue Ago 18, 2005 10:49 am
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
|
|
|
|
|
| monoswim escribió: | | Oye kidd, con lo de File::Find tuve el mismo problema que con mi función, reinicié el apache y problema resuelto...jeje así que sigo sin usar módulos...jajaja |
Aún así, te recomiendo que uses mejor el File::Find, es mucho más rápido.
SALUDOS |
|
Dom Ago 21, 2005 10:31 am
|
 |
Joaquin
Perlero Nuevo

|
Registrado: 13 Ago 2005
Mensajes: 12
Ubicación: Valladolid, España
|
|
|
|
|
| ¿Puedes poner un ejemplo del fichero XML y de lo que necesitas buscar? |
|
Lun Ago 22, 2005 8:16 am
|
 |
monoswim
Vive para Perl en Español

|
Registrado: 18 Nov 2003
Mensajes: 716
Ubicación: Buenos Aires
|
|
|
|
|
Pues el XML es del tipo
<articulo></...>
<titulo></...>
<descripción></...>
<texto></...>
Y busco la info por ahí, creo que lo de grep es más rápido que parcear el XML...verdad?
Saludos |
|

Lun Ago 22, 2005 9:11 am
|
 |
Perl user
Maestro Honorario

|
Registrado: 03 Nov 2004
Mensajes: 385
|
|
|
|
|
| monoswim escribió: | Pues el XML es del tipo
<articulo></...>
<titulo></...>
<descripción></...>
<texto></...>
Y busco la info por ahí, creo que lo de grep es más rápido que parcear el XML...verdad?
Saludos |
Pues la especificación del XML no la veo muy completa, y no, todo depende, grep recuerda que genera listas en memoria, generar una lista del tamaño de tu archivo quizas no sea lo mas eficiente, por otro lado, si usas SAX para parsear tu archivo XML puede ser muy rápido, pero si el archivo es muy pequeño construir un arbol DOM con XML::LibXML podría ser muy rápido también.
Saludos,
PD. Aun no entiendo bien tu problema, y tampoco tengo muy claro todo lo que quieres hacer, podrías ser mas explícito? |
|

Mar Ago 23, 2005 6:29 am
|
 |
monoswim
Vive para Perl en Español

|
Registrado: 18 Nov 2003
Mensajes: 716
Ubicación: Buenos Aires
|
|
|
|
|
El problema que tenía ya lo solucioné con la respuesta de KIDD, simplemente tengo un sistema que almacena la info en unos XML en vez de en un mysql, y ahora le hice un módulo buscar que abre dichos archivos y busca en su contenido...
Pero dejen, ya lo tengo funcionando y va de perlas !!!
Gracias a todos !!! |
|
Powered by phpBB © 2001, 2005 phpBB Group
|