use Net::SFTP::Foreign; my $hostname='my.server.com'; my $sftp = Net::SFTP::Foreign->new( $hostname , user=>"me" ); my @files = $sftp->find( '/data/dir',wanted => sub{ my $now = time(); my $yesterday = $now-(24*3600); my (undef, $entry) = @_; ( ($entry->{a}->mtime < $now) and ($entry->{a}->mtime > $yesterday) and (-f $entry->{a} ) ) } );