Still, get() should not be returning a true value unless the transfer was completed successfully (if you ask me). This sounds like a bug with Net::FTP. I might contact the author and describe what happened. It's possible that this is actually intended behavior, so that you can resume the FTP transfer later. But there
must be a better way of determining this than checking the size of the file by hand. As I mentioned, an ASCII transfer makes no guarantee that the size of the file will be the same on one side as the other.
Glad you got it figured out though.