Setting binary mode $ftp->binary; should do the trick.
In reply to Re: File corrupt when using Net::FTP by vek in thread File corrupt when using Net::FTP by rupesh