#! perl -sw use strict; use Win32::Socketpair qw[ winsocketpair ]; my( $fd1, $fd2 ) = winsocketpair(); my $v = ''; vec( $v, my $fn1 = fileno( $fd1 ), 1) = 1; vec( $v, my $fn2 = fileno( $fd2 ), 1) = 1; while( 1 ) { if( select( my $vin = $v, my $vout = $v, undef, undef ) > 0 ) { if( vec( $vout, $fn1, 1 ) ) { print( $fd1 "hello\n" ) or last; } if( vec( $vin, $fn2, 1 ) ) { defined( my $buffer = <$fd2> ) or last; print "read: $buffer"; } } } __END__ C:\test>junk88 read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello read: hello Terminating on signal SIGINT(2) read: hello