in reply to Problems with Net::FTP
The "binary" call generates an instruction to the remote host to disable line ending translation. You cannot alter the state of the "ftp connection" until you authenticate. Hence, you need to put the "binary" call after the login, but it should not be necessary to put it inside the loop.
In Section
Seekers of Perl Wisdom