I don't think so. You get a timeout either because the connection to 192.168.203.23 is broken, or because the cmd() successfully opens a telnet connection which gets no further input. Try print() instead of cmd() and then search ( waitfor() ) the prompts and deliver the correct responses. A combination of print("telnet ...") and login() might also work, saving you some work. Take care if you are connecting to some non-UNIX hosts (see Net::Telnet : Connecting to a Remote MS-Windows Machine).
I would attack this problem by manually logging into the first host using a telnet client (telnet or PuTTY) and then login to the second host. While doing so, I would write down every significant prompt (username, password, etc.) and the correct response to it. That way, I would gain certainty that my approach would work in principle. Then, I have everything at hand for scripting this task.
Next step is to detect error-conditions (ill. or expired password, connectivity problems, timeouts, etc.), so your script becomes more robust.
Update (in response to 919601, 919606):
Try @output=$t->cmd('show system'); instead of @output=$t->print('show system');
If you get a timeout, use cmd() with a proper Prompt => '....' argument.
Maybe you want @output = $t->cmd(String => "show system", Prompt => '/]> /'); ?
In reply to Re^6: telnet from a cisco telnet
by Perlbotics
in thread telnet from a cisco telnet
by Kumar Mantri
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |