http://www.perlmonks.org?node_id=1063451


in reply to Re: Net::SSH2 related query
in thread Net::SSH2 related query

I used your code , but the print statement didn't print results of "ls command". however when i run the script in debugg mode i found "@respose" having results of "ls"

Replies are listed 'Best First'.
Re^3: Net::SSH2 related query
by lune (Pilgrim) on Nov 20, 2013 at 14:40 UTC
    Just tried again to reproduce your error. First, I am getting the same result (nothing read), if I set the timeout in the select-function too low, say
    #select(undef,undef,undef,0.2); select(undef,undef,undef,0.001);
    Maybe You should try a higher one?

    Second, it seems, that readline (or <>) is always able to read from the channel (no select necessary). The below code works for me. For you too?

    my $chan = $ssh->channel() or die "create channel:$!\n"; $chan->shell() or die("open shell: $!\n"); $chan->blocking(0); $chan->write("ls\n") or die("write to channel: $!\n"); while ( <$chan> + ) { print $_; }

Re^3: Net::SSH2 related query
by keszler (Priest) on Nov 20, 2013 at 14:33 UTC
    In print $chan "ls\n";, $chan is like a filehandle (open FH, '>', 'file.txt'; print FH "something\n";). The print command sends the characters over the SSH connection to the shell on the other end.