I'll explain further if you have any other questions. Please let me know if this works for you.
in reply to Re^5: How to pass CTRL-C to child script only
in thread How to pass CTRL-C to child script only
The above is tested, working code. It contains an abbreviation of your autoLogon code that I hope is similar to your actual semantics.
Some modules to consider Term::Readkey or IO::Prompter, to handle this for you.
Another option is to put the terminal into raw mode and read characters one at a time. Abort upon finding the key currently bound to sig-int (ctrl-c). blech, what a pain that would be.