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


in reply to Catching die in Net::SFTP / Net::SSH::Perl:

If you still looking for hints on this module usage:
#!/usr/bin/perl -w #usage: ./demo1.pl myftphost.com -u xx use strict; use Net::SFTP; use Getopt::Long; my %opts; my $user; Getopt::Long::Configure('no_ignore_case'); GetOptions(\%opts, "v", 'u=s'=>\$user); my($host) = @ARGV; die "usage: demo1 [options] hostname" unless $host; # set up the arguments based on the command line options my %args = (ssh_args => []); $args{debug} = 1 if $opts{v}; push @{ $args{ssh_args} }, user => $user ; # make our connection print "Connecting to $host...\n"; my $sftp; #Stype0 # #$sftp = Net::SFTP->new($host); #$sftp->login($user, $pass); #OR #without PWD and using ssh key #$sftp->login($user); #Style1 # #$sftp = Net::SFTP->new($host, %args); #Style2 $sftp = Net::SFTP->new($host, ssh_args => [ user => $user, options => [ 'ConnectTimeout 30', 'ServerAliveInterval 20', 'ServerAliveCountMax 3' ] ] ); if (!$sftp) { print "Unable to open SFTP connection\n"; return; } print "SFTP connection opened.\n"; $sftp->ls("." , sub { print $_[0]->{longname}, "\n" }); $sftp->get('test.dat'); $sftp->status; print "Finished\n";