If you're logging into a Unix-type telnet server, you might need to send the terminal info to the command line so that it maps your function keys correctly.
This may even be as simple as setting your "TERM" environment variable to match the emulation mode of your terminal or terminal emulator. For example:
## Connect and login.
use Net::Telnet ();
$host = new Net::Telnet (Timeout => 30,
Prompt => '/[%#>] $/');
After this you could try sending the ASCII function codes, perhaps, or whatever other techniques you were trying before.
Again, I'm not positive this will work for you as I've only
used Net::Telnet on a couple of my scripts, but it's pretty easy, and might help you with the missing "functionality." ;-)