• Publicidad

Duda muy básica sobre ficheros

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

Notapor explorer » 2007-08-17 18:48 @825

fgalves escribiste:Lo que intento hacer, es un "split" pero en tiempo real (para llamarlo de alguna manera). Es decir, cuando dicho fichero temporal alcanza un número de líneas determinado, vuelco su contenido a un fichero de salida, y luego vacío su contenido y pongo el contador a cero repitiendo dicha operación cuantas veces haga falta. Al final del día, mi objetivo es tener múltiples ficheros .txt en vez de un solo fichero temporal FILEOUT conteniendo la totalidad de los datos.


Humm... yo creo que este problema se puede resolver con un bucle de 'cat's y al final, ejecutar un comando 'split'. Sin Perl :-)

fgalves escribiste:Por cierto Explorer: ¿Por qué es mucho mejor un cp que un cat? ¿Es quizás más eficiente?
Bueno, depende de algunos factores, como puede por ejemplo, el tamaño del fichero. Se supone que un cat es una operación de lectura/escritura mientras que un cp es una operación del sistema de ficheros. Mejor hacer una prueba:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl

use strict;
use Benchmark qw(:all) ;

my $count = 1000;

cmpthese( $count, {
    'cat'       => sub { `cat abuse > abuse1` },
    'cp'        => sub { `cp abuse abuse1`    },
});
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Código: Seleccionar todo
      Rate cat  cp
cat 3030/s  -- -6%
cp  3226/s  6%  --
Vamos, el cp gana por poquito...
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

Publicidad

Anterior

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 30 invitados