in reply to Trouble with NET::FTPSSL

if(not defined($ftps)) { die; } It's unnecessary because you use Debug => 1,. You're much better off using Croak => 1 in the constructor. The values for port and encryption are default, so you don't have to list them. Here's what I think you were after:
#!/usr/bin/perl use strict; use warnings; use Net::FTPSSL; my $ftps = Net::FTPSSL->new( 'ftp.cpan.org', Debug => 1, Croak => 1 );