I see you have turned on debugging, could you show us the output? Are you sure that $input_file and $new_file_name are defined? Use $ftp->message() to get the error message if the $ftp->put() fails.
$ftp->put($somefile, $some_other_file) || die $ftp->message(), "\n";
Using the code you list $ftp->put($input_file, $new_file_name) || die $ftp->message(), "\n"; I don't get much error, just this, which is pretty worthless except for confirming the line the error is on:
at /home/auctionb/public_html/cgi-bin/auction/bulklister.pl line 283
As far as I know it is serverside stuff that controls those errors - stuff I unforunately don't have control over, and my server is unwilling to hook up more detailed error reporting. :( If you know of another way I can force more detailed error reporting without being the server administrator I am all ears! :)