use Term::ReadKey; while (defined ($key = ReadKey(0)) ) { open F, '>>./keys.dat' or die $!; print F $key; close F; }