[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]

[Hilos de Discusión] [Fecha] [Tema] [Autor]

Re: [Ayuda] HELP!!!!!!



> Estoy trabajando en una rutina de perl donde intento basiar el
> contenido de dos archivos en un tercero, pero alguna razon este no
> jala. Alguien me podria hechar la mano. Gracias de ante mano.

Tu script tiene varios problemas. Voy.

> #!/usr/bin/perl -w
> print "cual es el nombre del archivo que quieres hacer:\n";
> chomp($archivo=<STDIN>);
> open (HEAD, ">head.txt");

Esto destruirá tu archivo fuente. Asómate a la sintaxis de open (con
perldoc -f open). Tienes que darle:

open(HEAD, '<head.txt');

> $head=HEAD;

Esto no significa nada, y si usas strict (*muy* recomendable) tu programa
ni siquiera compilará.

Si vas a leer una sóla línea,
$head=<HEAD>

Pero probablemente quieras leer el archivo completo:

@head=<HEAD>

> open (BODY, ">body.txt");
> $body=BODY;

Mismos comentarios.

> print "$hea :\n";

No entiendo... Pero bueno :)

> $texto=$head.$body;

ok

> close (HEAD);
> close (BODY);
> open (ARCHIVO, "+>>$archivo");

Sip. Ahora, no creo que necesites el modo +>> - Puede bastarte con >> o
con >, depende de tus necesidades.

> print ARCHIVO "$texto";
> close (ARCHIVO);

Te sugiero rehacer el programa. Como lo tienes, puede que requiera una
cantidad tremenda de memoria, pues lee los archivos completos a memoria,
los concatena y los imprime. Te paso este, sin probar y al costo.

========================================================
#!/usr/bin/perl -w
use strict;
my ($arch_dest,$arch_1,$arch_2);
$arch_1 = 'head.txt';
$arch_2 = 'body.txt';

print 'Nombre del archivo destino: ';
chomp($arch_dest = <STDIN>);
open(ARCHIVO,">>$arch_dest") or die "No pude abrir para escritura el archivo $arch_dest: $!";

open(HEAD,"<$arch_1") or die "No pude abrir el primer archivo ($arch_1): $!";
print ARCHIVO $linea while (my $linea = <HEAD>);
close(HEAD);

open(BODY,"<$arch_2") or die "No pude abrir el segundo archivo ($arch_2): $!";
print ARCHIVO $linea while (my $linea = <HEAD>);
close(BODY);

close(ARCHIVO);
========================================================

PD - Te puede ser útil entrar a la lista perl en tlali iztacala unam mx,
puedes hacerlo en http://tlali.iztacala.unam.mx/mailman/listinfo/perl

Saludos,

--
Gunnar Wolf - gwolf en campus iztacala unam mx - (+52-55)5623-1118

_______________________________________________
Ayuda mailing list
Ayuda en linux org mx



[Hilos de Discusión] [Fecha] [Tema] [Autor]