Just in case it's not so clear how that link demonstrates a possible solution, Curses uses STDIN, STDOUT, STDERR. So in a BEGIN block before initializing Curses, create a new IO pty and then redirect the standard file handles to/from it like in the example script in the link. Then Curses is connected to the pty.