----- Original Message ----- 
From: "SelfSimilar" <[EMAIL PROTECTED]>
To: <perl-win32-users@listserv.ActiveState.com>
Sent: Friday, December 05, 2008 6:34 AM
Subject: NET::SSH2 - No Output


> After successfully establishing a SSH connection I use the following code
> snippet, variations of which have been posted many places.
>
>    my $chan = $ssh2->channel();
>    $chan->shell();
>    $chan->blocking(0);
>    my ($len, $buf);
>    $chan->write("ls\n");
>    select(undef,undef,undef,0.25);
>    print $buf while (($len = $chan->read($buf,512)) > 0);

As an alternative, that could be replaced with:

my $chan = $ssh2->channel();
my ($len, $buf) = (1000, ' ' x 1000);
$chan->exec("ls\n");
$chan->read($buf, $len);
print $buf, "\n";

One problem with that replacement code is that you need to allocate a 
sufficiently large buffer ($buf). It doesn't matter if $buf is larger than 
necessary, but if it's smaller than needed then you miss out on the "extra" 
data.

>
> I get an error message "Use of uninitialized value in numeric gt (>) at
> SFTP_test2.pl line 21" which is the print statement

It's not an error message - it's a warning which you could eliminate with 
(at the beginning of your script):

no warnings 'uninitialized';

I get the same warning with your code, but I also get the "ls" output 
printed out before the warning appears. Is it the same for you ?

Are you using perl 5.8.x or 5.10.0 ?

Cheers,
Rob


_______________________________________________
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to