In the 2-arguments (and 1-argument) form opening '-' opens STDIN and opening '>-' opens STDOUT.What that basically does is copy the STDOUT filehandle to the first argument of open e.g
So there you can see that the >- form just copies the STDOUT filehandle, but if it's duplicated then we get the expected behaviour. It would seem that if you close STDOUT you can't open it again (but there's probably some system dependent trickery you can use to get an approximation of it back again).shell> perl -le 'open( FH => ">-" ); close STDOUT; print FH "test"' shell> perl -le 'open(FH => ">&STDOUT");close STDOUT; print FH "test"' test
Update - further research would indicate that you can't re-open STDOUT at all. This is due to the fact that close STDOUT closes the file descriptor pointed to by STDOUT, and since there isn't a way of natively re-creating STDOUT in perl it's gone for good. However, my research hasn't been exhaustive so if this is inaccurate please let me know.
HTH
_________
broquaint
In reply to Re: How can I re-open STDOUT?
by broquaint
in thread How can I re-open STDOUT?
by Courage
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |