The SSH server running on those routers does not follow the standard.
Read the entry "Connecting to switches, routers, etc." from the module+ FAQ (https://metacpan.org/module/Net::OpenSSH#FAQ) for an explanatio+n of what is going wrong.
A workaround may be to add a "quit" or "exit" command to explicitly en+d the session. For instance:
@output = $ssh->capture("$cmd\nexit\n");
if that doesn't work, try this:
@output = $ssh->capture({stdin_data => "$cmd\nexit\n"});
otherwise you will have to use Expect to wait for the session prompt, +send the command, get the output until you get the prompt again and c+lose the connection.