Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como perl

Informar a los cpantesters desde una dirección privada

Test::Reporter permite enviar un mensaje al grupo de los cpantesters con el resultado de la instalación de un módulo de Perl, en el sistema. Lo normal es que ese mensaje vaya por medio del módulo Net::SMTP (opción por defecto). El problema ocurre cuando estamos en un ordenador particular, detrás de una línea ADSL privada o residencial. La mayor parte de las veces no podremos enviar el correo, porque el servidor de destino nos rechazará la conexión, precisamente porque el correo sale de una dirección IP reservada al entorno residencial. La solución pasa por configurar y modificar CPANPLUS para que el correo se envíe por medio del servidor SMTP de nuestro proveedor de Internet. Primero, hay que editar el fichero /root/.cpanplus/lib/CPANPLUS/Config/User.pm. Esto lo podemos hacer de forma cómoda desde el propio entorno de CPANPLUS, entrando en cpanp y ejecutando s edit user . Se arrancará el editor por defecto junto con una copia del fichero, donde podremos modificarlo. Los valores que d...

Nueva versión del medallero olímpico en Wikipedia

Pues debido al éxito de mi programa que actualizaba el medallero de los Juegos Olímpicos de Pekín 2008 en la Wikipedia española, algunos editores me han pedido que hiciera lo mismo para los juegos de Vancouver 2010 . Y ya está funcionando desde hace unos días. Cada 5 minutos, coloca las nuevas medallas. El programa está escrito para Perl v5.10. Y los módulos que he usado son: LWP::Simple , para hacer un simple get() de la página oficial del medallero de los Juegos MediaWiki::API , para dialogar con la API de Wikipedia common::sense , un módulo que me ha sorprendido por lo bien que funciona .

Lo nuevo de Perl 5.10. 3: El operador smart match

El operador de coincidencia universal, ~~. El sueño hecho realidad del programador que quiere tener un código corto, limpio, claro. Para los programadores de Perl, se nos convirtió en costumbre pensar la forma en la cual tenemos que saber cómo comparar dos elementos. Estamos acostumbrados a pensar en las múltiples formas, operadores y posibilidades de comparación entre elementos, comprobación y existencia de elementos dentro unos de otros, valores de retorno de las funciones, existencia de un elemento dentro de un array o hash . Pero a su vez, esto es un problema para los que empiezan, que se sienten abrumados por la cantidad de operadores y nueva sintaxis que deben aprender. Ahora no. Casi todas de estas operaciones se pueden realizar con el mismo operador. Un ejemplo: if ( $a ~~ @b ) { hará lo que sospechamos: devolverá verdadero si el elemento $a está dentro de @b, es decir, que alguno de los elementos de @b es igual a $a. Ya no hay que escribir un bucle para recorrer el arra...

Lo nuevo de Perl 5.10. 2: El operador de definición

Se trata del operador // . La expresión $a // $b es equivalente a defined $a ? $a : $b Su uso principal será en la entrada de parámetros, en la que necesitamos saber si se le ha pasado un parámetro al programa o debemos tomar un valor por defecto. my $parametro1 = $argumento1 // $valor_por_defecto1; Como nota curiosa, decir que en algunas raras situaciones se podría confundir con una expresión regular vacía. Lo normal es que no nos encontremos nunca en esas situaciones. Para evitar confusiones, lo ideal es prefijar las expresiones regulares con m . Además, es una regla básica de las buenas prácticas de programación en Perl, así que entonces, no hay problemas.

Lo nuevo de Perl 5.10. 1: El pragma feature

Comenzamos aquí una serie de artículos sobre las novedades que trae la última versión estable de Perl, la v5.10, publicada en diciembre de 2007. Estarán basados en el documento perl5100delta.pod de la actual documentación de Perl v5.10. El pragma feature Este pragma se usa para activar la nueva sintaxis de esta versión. Se usa así para evitar problemas de compatibilidad con programas hechos para versiones de Perl anteriores. Las nuevas features disponibles son say , switch y state que veremos próximamente. Como otros pragmas , el efecto de las features solo estarán disponibles en el contexto o bloque en que se definen: { use feature 'say'; say "say está disponible aquí"; } print "Pero no aquí.\n"; También se puede activar solicitando que el intérprete de Perl sea de una versión superior a la 5.9.5: use 5.010; que es, además, la forma recomendada para activar la nueva sintaxis. Desde la línea de comandos, se podrá activar con la opción -E , en lugar ...