Chris wrote: > I need to log stdout and stderr from a sub of a perl module. I am > unable to make use of modules such as open3. Any ideas? > > myscript.pl > > $myobj = new ($pm); > $myobj->doprint(); #need to capture stderr, stdout from $myobj > > mymodule.pm > > sub doprint { > print 'hello world'; > die 'goodbye cruel world'; > }
dup the file handles to the log files you want: #!/usr/bin/perl -w use strict; open(STDOUT_LOG,">stdout.log") || die $!; open(STDERR_LOG,">stderr.log") || die $!; open(STDOUT,">&STDOUT_LOG") || die $!; open(STDERR,">&STDERR_LOG") || die $!; print "hello world\n"; #-- goes to the file stdout.log warn "hi world\n" #-- goes to the file stderr.log __END__ to trap die: $SIG{__DIE__} = sub {print "whatever\n"; }; when you dup the file handles, it makes sense to save the old ones first so later you can revert it back. check out perldoc -f open for more help. HTH david -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]