in reply to telnet, passwords, and other challenges to my cough syrup ridden mind

Regarding the report_error issue, I'm not sure what you mean when you say that you "have changed [Net::Telnet] to call report_error rather than die." You need to do the following, just after creating the $telnet object:

$telnet->errmode('return');

This tells Net::Telnet to return an undef value on failure, instead of calling the default, or a custom, error handler (and dying).

bbfu
Black flowers blossom
Fearless on my breath