#! /usr/bin/env perl use strict; use warnings; use feature qw(say); use autodie; use Net::SFTP::Foreign; use constant { HOST => "sftp.mariog.net", REMOTE_DIR => "/Daily", LOCAL_DIR => "/root", USER_NAME => "MGO", PASSWORD => "mypass", DEBUG => "0", }; my $sftp; $sftp = Net::SFTP::Foreign->new ( HOST, timeout => 240, user => USER_NAME, password => PASSWORD, autodie => 1, ); # # Fetch Files # $sftp->setcwd( REMOTE_DIR ); my @files = @{ $sftp->ls }; #Returns a reference to an array of hashes for my $file ( @files ) { $sftp->get($file->{filename}, LOCAL_DIR) or die "file transfer failed: " . $sftp->error; $sftp->remove( $file->{filename} ); } $sftp->disconnect;