• Publicidad

Lectura continua de archivo

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Lectura continua de archivo

Notapor LuizZoFT » 2006-01-09 18:35 @816

Hola a todos, quería saber si hay alguna forma de leer un archivo continuamente, es decir, lo que quiero hacer es correr un proceso que esté pendiente de un archivo, si el archivo crece entonces el proceso comienza a leer las líneas nuevas... me conecto al archivo por telnet con Perl 5.6.1 en Solaris 9.

Otra solución podría ser que cada cierto tiempo dispare mi proceso y comience a leer el archivo DESDE LA ÚLTIMA LÍNEA EN EL QUE SE QUEDÓ en su anterior leída, lo que pasa es que es un archivo muy grande y leerlo todo de nuevo sería una perdida de tiempo...

¡¡¡¡¡Muchas Gracias!!!!!! :!:
--LuizZoFT--
LuizZoFT
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2006-01-09 18:33 @814
Ubicación: Lima - Peru

Publicidad

Re: Lectura continua de archivo

Notapor explorer » 2006-01-09 19:06 @838

Con el módulo File::Tail es fácil:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use File::Tail;
  2.  
  3. my $fichero = File::Tail->new(name=>"/var/log/messages", interval => 10);
  4. while ( defined( $linea = $fichero->read ) ) {
  5.     print $linea;
  6. }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Yo lo uso para ver los logs del sistema.

Otra opción es ir guardando la última posición leída, hacer un seek() y leer líneas desde ella. Y volver a guardar la nueva posición, hacer un seek(), etc., etc.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Perl user » 2006-01-10 10:23 @474

Una alternativa cooperativa y multitarea podría ser utilizando POE y más en específico el módulo POE::Wheel::FollowTail, el cual te permite inspeccionar incluso varios archivos a la vez.

Un ejemplo de aplicación lo encuentras en el POE Cookbook.

Saludos,
Marco A. Manzo
[email protected]
http://www.unixmonkeys.com/amnesiac/
Perl Programming Language
Perl user
Maestro honorario
Maestro honorario
 
Mensajes: 271
Registrado: 2004-11-03 21:11 @924

Gracias!! pero tengo problemas para instalar los modulos =(

Notapor LuizZoFT » 2006-01-11 18:09 @797

Hola :!:

¡¡¡Gracias por la ayuda!!! Tengo un problema instalando los módulos que Perl usa para correr los scripts. La versión que tengo de Perl es la v5.6.1, corriendo sobre Solaris 9 para i86.

En cuanto ejecuto el make me sale lo siguiente:
Sintáxis: [ Descargar ] [ Ocultar ]
  1. cc -c -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -xO3 -xdepend  -DVERSION=\"1.50\" -DXS_VERSION=\"1.50\" -KPIC -I/usr/perl5/5.6.1/lib/i86pc-solaris-64int/CORE -DDBI_NO_THREADS Perl.c 
  2. sh: cc: no encontrado 

Ya probé intentando la compilación con el gcc pero tampoco corre dado que los parámetros del cc son diferentes a los que soporta el gcc.

¿Me pueden dar una mano con esto?

¡¡¡Gracias!!!
--LuizZoFT--
LuizZoFT
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2006-01-09 18:33 @814
Ubicación: Lima - Peru


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado