This honestly sounds less like a problem with Perl and more likely a problem with the router. If I were you, I'd fire up wireshark (or more likely tshark) and grab a packet capture of your failing config capture session. Then take a look at it wireshark and see what's going on. Is the command being sent properly? Is the router returning the data you expect? One advantage of telnet is that it's all clear on the wire, so it's easy to troubleshoot.
Speaking of that, you should really kill telnet and use ssh. This is a pretty basic security best practice. ;-)