Check out the Beginners guide to Net::FTP. You should be checking the return values as already mentioned, and displaying the correct error messages (well, maybe you don't need that in debug mode, but derby has them wrong further down in this thread). And I really don't think you need the explicit require of Net::FTP::A.