http://www.perlmonks.org?node_id=313888


in reply to Re: Open pipe to a function?
in thread Open pipe to a function?

I can't just redirect it, because I also want to see it at runtime.

---
A fair fight is a sign of poor planning.

Replies are listed 'Best First'.
Re: Re: Re: Open pipe to a function?
by hardburn (Abbot) on Dec 10, 2003 at 21:48 UTC

    You could probably do some tricks with IO::Multiplex. Just save the orginal filehandle like this:

    my $old_stderr = *STDERR;

    And then reopen STDERR with IO::Multiplex with $old_stderr and a filehandle to the log file.

    ----
    I wanted to explore how Perl's closures can be manipulated, and ended up creating an object system by accident.
    -- Schemer

    : () { :|:& };:

    Note: All code is untested, unless otherwise stated

Re: Re: Re: Open pipe to a function?
by tcf22 (Priest) on Dec 10, 2003 at 21:59 UTC
    How about
    use IO::Tee; open(ERRLOG, '>error.txt'); my $tee = new IO::Tee(\*STDOUT, \*ERRLOG); *STDERR = $tee;

    - Tom