in reply to Restoring std(outerrin) with Net::Server

By default, , on a UNIX box, when forking, the open handles are inherited from the father so this is not surprising that STDIN and STDERR are sockets if the father has opened sockets. IIRC a process can "restore" STDIN, STDOUT and STDERR if not detached of the current tty. For a start, try to adpat the following code that reopens the STD* handle:
close STDIN; close STDOUT; close STDERR; # not really necessary open STDIN, "</dev/tty"; open STDOUT, ">/dev/tty"; open STDERR, ">/dev/tty"; # testing print "STDOUT\n"; print "STDERR\n"; $_ = <STDIN>; print $_;
Really, these are not Perl issues. They are thouroughly covered in Advanced Programming in the UNIX Environment by Richard Stevens. I really need to reread it from cover to cover.

I would be happy to learn that there is a more portable way to reopen this file handlles.

-- stefp