#!/usr/bin/perl -w use strict; use Socket; open OLDOUT, ">&STDOUT"; for (my $i=0;$i<3;$i++) { open STDOUT, ">&", \*OLDOUT or die "reset STDOUT - $!"; my ($in, $out); my $buf; open STDOUT, ">/dev/null" or die "redirect - $!"; socketpair( $in, $out, AF_UNIX, SOCK_STREAM, PF_UNSPEC) or die + $!; printf STDERR "sock is $out file %d\n", fileno ($out); open STDOUT, ">&=", fileno($out) or die ">&= fileno(fd) - $!"; print "test1\n"; open STDOUT, ">&=", $out or die ">&= fd - $!"; print "test2\n"; open STDOUT, ">&", \*OLDOUT or die "reset2 STDOUT - $!"; }