use Net::FTPSSL; my $ftps = Net::FTPSSL->new( 'site.uat.mysite.com', Encryption => EXP_CRYPT, Debug => 1, DebugLogFile => "myLog.txt", Port => 5041, useSSL => 0, SSL_Client_Certificate => { SSL_cert_file => '/path/to/cert_file.pem', SSL_passwd_cb => sub { return 'pa$$w0rd' }, SSL_version => 'TLSv12', }, Croak => 1 ); $ftps->trapWarn(); # Only call if opening a CPAN bug report. $ftps->login( 'USERNAME', 'PASSWORD' ); $ftps->put( "test.txt", "test1.txt" ); foreach ( $ftps->list() ) { print "$_\n"; } $ftps->get("test1.txt"); $ftps->quit();