func prompt_yn { static rk = frequire('Term::ReadKey') rk.ReadMode(4) # change to raw input mode var key =''while (key !~/[yn]/i) {while (rk.ReadKey(-1) !=nil) {} # discard any previous inputprint"Type Y/N: " say (key = rk.ReadKey(0)) # read a single character } rk.ReadMode(0) # reset the terminal to normal modereturn key.uc}var key = prompt_yn()say "You typed: #{key}"
Output:
Type Y/N: a
Type Y/N: b
Type Y/N: c
Type Y/N: y
You typed: Y