Creative Commons License
Excepto donde se indique otra cosa, todo el contenido de este lugar está bajo una licencia de Creative Commons.
Taquiones > victor > cestas > Martes 4 de Septiembre de 2007

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:

  1. Está escrito en Perl únicamente.
  2. 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
  3. Permite emplear expresiones regulares de Perl para las búsquedas
  4. Es posible discriminar conjuntos completos de archivos como --perl ó --nohtml, mejorando mucho las capacidades de find para encontrar dichos fuentes, como por ejemplo que comprueba la primera línea de los archivos para encontrar el intérprete.
  5. Dispone de una opción (-f) para obtener listas completas de archivos:

    $ ack -f --perl > my_file_list.txt
    
  6. Incluye realzados con colores en los resultados.

  7. Se puede indicar que utilice variables especiales de Perl en la salida final:

    $ ack '(Mr|Mr?s)\. (Smith|Jones)' --output='$&'
    
  8. 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).

  1. Definir un método en la clase UNIVERSAL.
  2. Reemplazar ó envolver código de terceros directamente (incluyéndolo en su espacio de nombres, no heredándolo).
  3. 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 ...