Martes 4 de Septiembre de 2007
Reemplazando a grep
Ack es un programa diseñado para reemplazar a
grep
en entornos de desarrollo Perl, sobre todo aquellos con enormes
árboles de código fuente.
Entre sus características podemos citar:
- Está escrito en
Perl
únicamente. - Busca recursivamente en los directorios pero excluyendo de entrada los
siguientes tipos de archivos y directorios:
- aquellos propios del sistema de control de versiones (SubVersion, CVS, ...)
- el directorio
blib
- los archivos de copias de seguridad
foo~
- los archivos binarios
- Permite emplear expresiones regulares de
Perl
para las búsquedas - Es posible discriminar conjuntos completos de archivos como
--perl
ó--nohtml
, mejorando mucho las capacidades defind
para encontrar dichos fuentes, como por ejemplo que comprueba la primera línea de los archivos para encontrar el intérprete. Dispone de una opción (
-f
) para obtener listas completas de archivos:$ ack -f --perl > my_file_list.txt
Incluye realzados con colores en los resultados.
Se puede indicar que utilice variables especiales de
Perl
en la salida final:$ ack '(Mr|Mr?s)\. (Smith|Jones)' --output='$&'
Y comparte algunos parámetros de llamada con
grep
:-w
búsqueda sólo por palabras-c
muestra totales obtenidos-l
proporciona el nombre del archivo en lugar de su contenido.
Aunque está bastante bien valorado,
personalmente no me gusta la organización de los fuentes porque hace muy
difícil empaquetarlo para Debian. Lo he intentado y he tenido que eliminar
de un plumazo los tests del paquete puesto que se emplea a sí mismo para
buscarse en su directorio raíz. Desde el momento en que he creado un
directorio debian/
en él enloquece y da todo tipo de fallos; peor aún, no es
posible suprimir un test porque los siguientes parecen depender de alguna
forma del eliminado.
Si a alguien le interesa está a su disposición en mi repositorio, aunque el autor también dispone de una versión completa, lista para emplearse directamente.
Referencia de documentación DBI
DBI dispone ahora de una página donde consultar toda la documentación del mismo (principalmente tomada del CPAN) en un formato bastante cómodo (si soportas los frames).
Otro recurso útil para tener en cuenta, dado que usa la versión más actualizada del mismo.
Encuesta sobre Perl
Kirrily Robert ha presentado una página en la que se puede participar en una
encuesta sobre el mundo del desarrollo en Perl
, aunque él dice que su
finalidad real es encontrar programadoras en este lenguaje, vete tú a saber
con qué intenciones :-)
Si tienes algo que ver con el desarrollo y usas este lenguaje puedes echarle un vistazo y participar en Perl Survey 2007. Existen traducciones a varios idiomas y es más fácil ahora que cuando empezó.
Tres formas de dispararse en la cabeza
Matt Trout escribe un artículo comentando tres bonitas formas de dispararse en
la cabeza cuando escribes programas en Perl
(aunque algunas también son
aplicables a otros lenguajes interpretados).
- Definir un método en la clase UNIVERSAL.
- Reemplazar ó envolver código de terceros directamente (incluyéndolo en su espacio de nombres, no heredándolo).
- Utilizar filtrado de código de fuente (source filtering), precisamente por la cantidad de cambios que realizan en los programas sin que podamos advertirlos. Pone como ejemplo el módulo Switch y la numeración de líneas.
Divertido e interesante ...