in reply to "Faking" screen in perl?

You'd do multiple terminals the same way screen does it: fork off child processes on their own PTY. Your program would remain in charge of reading from the user's PTY and pass the relevant keystrokes to the child via whatever the corresponding PTY was. See chapters 19 and 9 of Stevens (Advanced Programming in the UNIX Environment) for more details, but it's not going to be a trivial undertaking.