in reply to Non Blocking input on Win32 platforms

I may not be addressing your specific problem, but I will show you this other method of reading stdin with Glib. The previous mentioned code I showed, only needed a thread if you needed a single key read. If you are content with readline, this is much simpler. One of the big problems with win32, is that select won't work on pipes(only sockets)....but the Glib lib is only 3 megs, and works on windows and avoids all the problems. See also Glib based forking server with root messaging Users on the Perl/Gtk2 maillist say that the IO->add_watch works on win32, see if this works.
#!/usr/bin/perl use warnings; use strict; use Glib; my $main_loop = Glib::MainLoop->new; Glib::IO->add_watch (fileno 'STDIN', [qw/in/], \&watch_callback, 'STDI +N'); #just to show it's non blocking my $timer1 = Glib::Timeout->add (1000, \&testcallback, undef, 1 ); $main_loop->run; sub watch_callback { # print "@_\n"; my ($fd, $condition, $fh) = @_; my $line = readline STDIN; print $line; #always return TRUE to continue the callback return 1; } sub testcallback{ print "\t\t\t".time."\n"; } __END__

I'm not really a human, but I play one on earth Remember How Lucky You Are