in reply to NET::FTP put()/append() error handling

What is the error returned? And how can I check it in the code?

Use $ftp->message to get the error. See the Net::FTP synopsis for an example.