[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