Ene 142013
 

(Read this post in english)

En algunos casos, el programador se encuentra con que debe procesar ficheros de un gran tamaño (por ejemplo, los ficheros de log de un servidor web).

Pero para algunos efectos, como puede ser la generación de un informe estadístico, no es necesario realizar el proceso del todo el fichero. En su lugar, una muestra suficientemente representativa es suficiente para generar un resultado aceptable, reduciendo el tiempo de proceso.

Para ello una condición normalmente necesaria es que la muestra obtenida sea completamente aleatoria. En este artículo explicamos como obtener esta muestra con un sencillo comando en perl.

Seguir leyendo »

 Publicado por en 9:06 pm
Nov 212012
 

Un caso típico en donde puede ser necesario establecer un tiempo límite de respuesta es el de un servidor que se comunica con uno o varios clientes a través de la red.

El servidor envía mensajes a los clientes, y espera a que éstos respondan. Pero puede haber problemas de red, o bien alguno de los clientes no responde por alguna otra razón, y esto no debe bloquear la ejecución del servidor para el resto de los clientes.

Seguir leyendo »

 Publicado por en 8:43 pm
Nov 212012
 

La función “alarm” de perl permite ejecutar una subrutina cuando ha transcurrido el tiempo que se le ha indicado como argumento.

Haciendo uso de ella, podemos implementar una función para solicitar una respuesta al usuario, pero si éste no responde pasado un tiempo, continúa la ejecución del script.

El código de esta función es el siguiente:

Seguir leyendo »

 Publicado por en 7:57 pm
Nov 192012
 

Mediante la programación multihilo, un programa puede ejecutar simultáneamente distintas tareas, optimizando el uso de los recursos disponibles en el sistema y disminuyendo el tiempo total de ejecución. Así, mientras un hilo puede estar ejecutando un proceso intensivo de cálculo, otro hilo puede estar realizando una operación de entrada/salida a disco. Un tercer hilo puede estar realizando una consulta a una base de datos que quizá reside en otro servidor, y un cuatro hilo puede estar descargando contenidos de la red.

En este artículo vamos a revisar los conceptos básicos de la programación multihilo y vamos a ver ejemplo de implementación en lenguaje Perl.

Seguir leyendo »

 Publicado por en 12:46 pm
Nov 132012
 

En otro artículo de este blog hemos comentado la manera de leer una página web utilizando el módulo perl LWP::UserAgent disponible en CPAN.

Pero puede ocurrir que el equipo en el que trabajamos no tenga acceso directo a internet, y sea necesario enviar la solicitud a través de un proxy server. En este artículo explicamos la manera de establecer la conexión a través de un proxy en nuestro script perl.

Seguir leyendo »

 Publicado por en 6:09 pm
Oct 302012
 

( Read this post in english )

En nuestro anterior artículo hemos visto cómo podemos procesar un fichero en formato XML con el módulo CPAN XML::Simple.

Sin embargo, este módulo lee el fichero entero en memoria, por lo que no resulta adecuado cuando el fichero a procesar es muy grande y los recursos de memoria RAM de que disponemos son limitados.

En su lugar, podemos utilizar el módulo XML::Parse::PerlSAX (SAX: Simple API for XML). Conforme se va leyendo el fichero, este módulo genera eventos del tipo “comienza un elemento”, “finaliza un elemento”, etc. Para procesar estos eventos programamos un package manejador de eventos.

Seguir leyendo »

 Publicado por en 8:18 pm