To get the output of STDERR,
eval comes along with a neat
variable that captures the errors during the evaluation process.
To capture STDOUT, you have two options:
- Log STDOUT from the beginning
- Print it a file. Then open that file and print it to the screen. This is what I hacked up and I am *certain* there is a better way for one of these.
Log from beginning:
BEGIN{
open(STDOUT,">stdout.log")||die"$!";
}
#2
#!/usr/bin/perl
use strict;
open(LOG,"log.txt") ||die"$!";
select LOG;
#...do stuff here
close LOG;
select STDOUT;
# I love ar0n :)
my $thing = do { local @ARGV = "foo.txt"; <> };
print $thing;
That way you get the stuff printed to the file and to STDOUT. I am sure there is a better way to do it. Monks, enlighten me(us). :)
UPDATE: I just noticed I really messed up on the question. Forgive me.
Tiptoeing up to a Perl hacker.
Dave AKA damian