In this line:
my(@hostline, $stderr, $exit) = $cs->cmd('sh run | inc hostname');
gives you all return values in @hostline and nothing in $stderr or $exit. If you are getting logged in, it should be able to run commands. Using print is a very valuable diagnostic tool. I would probably even go as far as making something very simple for testing.
use strict;
use warnings;
use Net::SSH::Perl;
$ENV{'HOME'} = 'c:\strawberry';
my $ip = 'xxx';
my $user = '********';
my $pw = '********'; # If you use single quotes, only single quotes
+will to be escaped with '\'
my $cs = Net::SSH::Perl->new($ip);
if ($cs->login( $user, $pw)) {
print $cs->cmd('sh run | inc hostname');
}
else {
warn "Unable to login\n";
}
$cs->close;