my $ssh2 = get_tiny_ssh2(); my $block1 = 0; my $block2 = 0; my $block3 = 0; my $chan = $ssh2->channel(); $chan->blocking($block1); $chan->exec('ls -la'); while (<$chan>) { print } $chan->close; #shell use my $chan2 = $ssh2->channel(); $chan2->blocking($block2); #line 21 #### Calling Net::SSH2::Channel::readline in non-blocking mode is usually a programming error at ./5.ssh2_1.pl line 16. Can't call method "blocking" on an undefined value at ./5.ssh2_1.pl line 21. $ #### Can't call method "error" on an undefined value at /usr/local/share/perl/5.26.1/Net/SFTP/Foreign/Backend/Net_SSH2.pm line 43. $ cat 5.ssh2_1.pl ... my $block1 = 1; my $block2 = 1; my $block3 = 0; my $chan = $ssh2->channel(); $chan->blocking($block1); $chan->exec('ls -la'); while (<$chan>) { print } $chan->close; #shell use my $chan2 = $ssh2->channel(); $chan2->blocking($block2); $chan2->shell(); print $chan2 "uname -a\n"; print "LINE : $_" while <$chan2>; $chan2->close; say "execution goes through here"; my $chan3 = $ssh2->channel(); $chan3->blocking($block3); ##line 43 $chan3->exec('pwd'); while (<$chan>) { print } $chan3->close; #### drwxr-xr-x 2 u61210220 ftpusers 61 Jun 9 2011 zen libssh2_channel_open_ex(ss->session, mandatory_type, strlen(mandatory_type), window_size, packet_size, ((void *)0) , 0 ) -> 0x0 Can't call method "blocking" on an undefined value at ./6.ssh2_1.pl line 23. Net::SSH2::Channel::DESTROY Net::SSH2::DESTROY object 0xbd630ac0 $ #### Net::SSH2::Channel::read(size = 4, ext = 0) - read 4 bytes - read 4 total Net::SSH2::Channel::read(size = 150, ext = 0) - read 150 bytes - read 150 total Net::SSH2::Channel::read(size = 4, ext = 0) - read 4 bytes - read 4 total Net::SSH2::Channel::read(size = 29, ext = 0) - read 29 bytes - read 29 total Can't call method "read" on an undefined value at ./5.ssh2_1.pl line 42. Net::SSH2::Channel::DESTROY Net::SSH2::Channel::DESTROY Net::SSH2::Channel::DESTROY Net::SSH2::Channel::DESTROY Net::SSH2::DESTROY object 0xc71e2800 #### my $block1 = 1; my $block2 = 1; my $block3 = 1; my $chan = $ssh2->channel(); $chan->blocking($block1); $chan->exec('ls -la'); while (<$chan>) { print } $block1 = 0; $chan->blocking($block1); $chan->close;