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
);