I wrote Net::SSH2::Cisco but never had Nexus switches to test on. It could be a lot of things, including the prompt string. From the CRAPPS utility I wrote:
... has an issue with prompt discovery on new Cisco IOS-XR
routers. These routers have a prompt like:
The current Net::Telnet::Cisco prompt matching will not catch
this and cause timeouts on Telnet connects to these types of
This script sends a new prompt that should match existing
prompts and the new IOS-XR prompts. If you are having failed
connect issues when in Telnet mode, but logging shows that
you are connecting, the custom prompt is the first place to
Net::Telnet::Cisco supplied prompt:
Updated by this program:
inserted after the "'/(?m:^" The rest of the line is left as is.
Note that I wrote Net::SSH2::Cisco as a drop in replacement for Net::Telnet::Cisco, so the same above should apply.
my $t = Net::SSH2::Cisco->new(
prompt => '/(?m:^ [...] s*$)/'; # or whatever matches your prompt
Also agree with zentara; waitfor_clear shouldn't need to be messed with, but if you're going to, at least us integer 0 (not '0' string).