[Perl] Redireccionar Output...
Alejandro G. Bedoya
nezumi@prodigy.net.mx
Wed, 19 Jun 2002 07:41:32 -0500
>Otra idea, m=E1s elegante y moderna: Usa IO::Handle, manejando los
>filehandles como bonitos y pr=E1cticos objetos. S=ED, STDIN/STDOUT p=
ueden ser
>objeteados tambi=E9n:
Porque objetos?? Encuentro el uso de objetos muy objetable, sobre=
todo
para estas cosas tan sencillas, mira el c=F3digo esta mas largo as=
=ED que el
anterior...
---
Sinceramente...
Alejandro G. Bedoya
InterAccion.COM Ponemos su Internet en Acci=F3n
open(ARCH,'>/tmp/archivo.out'); # No s=E9 si haya modo de abrirlo con=
un
# m=E9todo de IO::Handle, me parece q=
ue el
# m=F3dulo s=F3lo trabaja con filehan=
dles ya
# existentes
my $stdout =3D IO::Handle->new;
die "No pude abrir STDOUT: $!" unless ($stdout->fdopen(fileno(STDOUT)=
,'w'));
my $arch =3D IO::Handle->new;
die "No pude abrir el archivo: $!" unless ($arch->fdopen(fileno(ARCH)=
,'w'));
genHtml($stdout); # Se va a STDOUT
genHtml($arch); # Se va a ARCH
undef $arch; # Lo cierra autom=E1ticamente al destruir el objeto
sub genHtml {
my $fd =3D shift;
die "El argumento no me gusta!" unless (ref $fd eq 'IO::Handle');
die "El archivo no est=E1 abierto!" unless ($io->opened);
while (my $cont =3D genContenido()) {
$fd->print($cont);
}
return 0;
}
--
Gunnar Wolf - gwolf@campus.iztacala.unam.mx - (+52-55)5623-1118
PGP key 1024D/8BB527AF 2001-10-23
Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF