=pod =head1 Perio?dico de la Comunidad Perl de Capital Federal http://cafe.pm.org/boletines/ Cafe Perl v0.a =head1 CaFe Perl v0.a - Periódico de la Comunidad Perl de Capital Federal =head2 Editorial Hola Perl Mongers, bienvenidos a un nuevo número de CaFe Perl !! Esta vez tenemos grandes novedades. Para empezar a partir de este número hay un nuevo colaborador de CaFe Perl, alguien que ven a menudo en la lista, y ese alguien es Martín Ferrari que a partir de ahora va a llevar la sección Peace of Code, pero ya no como un ejercicio para hacer durante el mes sino como una serie de one-liners muy interesantes. Martín : bienvenido y que lo disfrutes. Por otra parte nuestra sección PERLitas nos trae una entrevista con Patrick Rael, quién está en proceso de creación de un robot. También la sección ?Mordiditas...? nos trae una inmersión en el mundo de la precedencia de operadores. Espero que lo disfruten. Hasta la próxima taza de CaFe Perl !!! ... eso sí, café del bueno ;-). Víctor A. Rodríguez (Bit-Man) POC (peace of code) Antes que nada las respuestas a las preguntas del número anterior : my $home = $ENV{HOME} || $ENV{LOGDIR} || (getpwuid($<))[7] || die ?Homeless boy\n? =over 2 =item * - qué significado tiene el hash %ENV ?? : permite el acceso de la variables de ambiente del sistema operativo (como PATH, HOME, etc.) =item * - qué son $ENV{HOME} y $ENV{LOGDIR} ?? : contienen los valores de los paths correspondientes al directorio home y al de logs =item * - que devuelve la función getpwuid() ?? : permite obtener una serie de datos del usuario cuyo UID es pasado a la funciín getpwuid() (en particular el octavo es el home dir0 =item * - qué contiene la variable $< ?? : el user id (UID) real del proceso actual =item * - qué significado tiene el valor alojado en $home ?? : el path del home directory del usuario actual =back Ahora el peace of code de esta semana : inspeccionar la estructura de un HTML. Útil para cuando estamos haciendo alguna mecanización de una página, y necesitamos ver sintéticamente el árbol de elementos. Luego solemos usar el mismo TreeBuilder para extraer datos y eso. Toma por entrada estándar el html y escupe un árbol de elementos. perl -MHTML::TreeBuilder -e '$t = HTML::TreeBuilder->new; while(<>) {$t->parse($_) }; $t->eof; print $t->dump' Ejemplo, leer la página de google no es apto para cardíacos, pero este script lo hace más fácil. Aquí uso algunas cosas que bien podría poner dentro del one-liner, pero no tiene sentido, es preferible esperar un segundo más y escribir menos! Explicación: obtengo el html de google.com, lo convierto de iso-8859-1 (el encoding por default para argentina devuelto por google) a nuestro locale en uso, y luego se lo paso a perl. $ GET http://google.com/ | iconv -f iso-8859-1 | perl -MHTML::TreeBuilder -e '$t = HTML::TreeBuilder->new; while(<>) {$t->parse($_) }; $t->eof; print $t->dump' @0
@0.0 @0.0.0