Instead of doing the terminal IO by hand, you might want to check out the CPAN module
Term::ReadKey; which grants you more control over what gets printed to the screen. To read a line from the terminal without having it printed, use the
ReadMode function (and remember to reset it before the program terminates, otherwise you screw up the display).
Cheers,
--Moodster