Perl: ese extraño y útil engendro

27-12-2006

Yo que pensaba que tenía muy claro que era el sendero luminoso de la programación... Al menos tenía la certeza de que el Perl no era lo adecuado: antiguete, confuso, y con una implementación de Objetos chapucera.

Pero a lo mejor no tanto, tengo que admitir que esta manera extraña de pasar los parametros como un hash lo hace muy legible:

$dt = DateTime->new( year   => 2000,
                     month  => 1,
                     day    => 1,
                     hour   => 12,
                     minute => 00,
                     second => 00,
                     nanosecond => 000,
                     time_zone => 'Asia/Taipei',
                     );

¡¡Si hasta va a ser una ventaja!! La verdad el hecho que el nombre del parámetro y el valor se pasen juntos lo hace muy fácil de entender. Cualquiera que lea la llamada a la función de arriba entiende que es cada parámetro.

De todas formas tampoco me voy a poner en serio con el Perl, porque estoy muy desentrenado, pero ya lo estoy usando a fondo para unos 'oneliners' facilones.

perl -i.bak -p0777 -e 's/<P><!-- Start.*Code --><.P>/&nbsp;/igs' *.html

Este script lo utilicé para eliminar el código JavaScript de un contador, y que se extendía por varias lineas. No tiene nada de especial, si no fuese por el uso del -p0777, que por lo visto sirve para leer el fichero de entrada no por lineas si no en un bloque entero, con lo que la opción 's' (tratar varias lineas como una sola) del reemplazo funciona de verdad. (Recordad el críptico -p0777, porque mola un rato).

perl -i.bak -pe 's/[0-9a-zA-Z\.\-\_]+\@[0-9a-zA-Z\.\-]+/xxx\@xxx/g' *.html

Si el de antes era tontorrón, este ya no te cuento. Es tan sólo un script que busca en las páginas por direcciones de email y las reemplaza por xxx@xxx, para evitar robots roba-direcciones. Pero es un ejemplo de la manera normal de funcionar de Perl, procesando por lineas.


feed de comentarios - top


·La Rabadilla· ·Laconada· ·iRamos· ·O Vello Corvo· ·Palabros·
counter [CSS 2 Valid!] [XHTML 1.0 Valid!] [Made with Ant] [Get Firefox] RSS 1.0RSS 1.0 Atom 1.0RSS 1.0